Skip to content

Kevinjqliu/example#29

Closed
kevinjqliu wants to merge 40 commits intomainfrom
kevinjqliu/example
Closed

Kevinjqliu/example#29
kevinjqliu wants to merge 40 commits intomainfrom
kevinjqliu/example

Conversation

@kevinjqliu
Copy link
Copy Markdown
Owner

Rationale for this change

Are these changes tested?

Are there any user-facing changes?

kevinjqliu and others added 30 commits November 11, 2025 23:44
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Move these links up, otherwise its buried in the list of dependencies 

## Are these changes tested?
N/A

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
No
<!--
Thanks for opening a pull request!
-->

Part of apache#2700 
<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
We're trying to re-enable all of the Ruff linter rules. B024 is
abstract-base-class-without-abstract-method

## Are these changes tested?
`make lint` and tests should still pass.

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Follow up to apache#2601 
clean up .egg-info/ and setup.cfg from sdist

## Are these changes tested?
Yes

Check the new sdist
```
rm -rf dist build pyiceberg.egg-info
uv build --sdist
tar -tzf dist/pyiceberg-*.tar.gz | grep -E "(build/|setup.cfg|\.egg-info)"
```

Diffed too
```
diff -qr ./dist/pyiceberg-0.10.0 ~/Downloads/nightly/sdist/ | sort

differ
    Files ./dist/pyiceberg-0.10.0/Makefile and /Users/kevinliu/Downloads/nightly/sdist/Makefile differ
    Files ./dist/pyiceberg-0.10.0/PKG-INFO and /Users/kevinliu/Downloads/nightly/sdist/PKG-INFO differ
    Files ./dist/pyiceberg-0.10.0/dev/.rat-excludes and /Users/kevinliu/Downloads/nightly/sdist/dev/.rat-excludes differ
    Files ./dist/pyiceberg-0.10.0/pyproject.toml and /Users/kevinliu/Downloads/nightly/sdist/pyproject.toml differ
new
    Only in ./dist/pyiceberg-0.10.0/tests: .DS_Store
    Only in ./dist/pyiceberg-0.10.0: MANIFEST.in
    Only in ./dist/pyiceberg-0.10.0: setup.py
removed
    Only in /Users/kevinliu/Downloads/nightly/sdist: build-module.py
    Only in /Users/kevinliu/Downloads/nightly/sdist: poetry.lock
```

In sdist, ran RAT check and tests
```
make check-license
make test-coverage
```

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
No
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Follow up to apache#2601

Apply `PYTHON_ARG` override to all `uv` commands`

## Are these changes tested?
Yes

Override to use python 3.13
```
export PYTHON=3.13
make setup-venv
make install
make docs-serve
```

Unset override and verify it uses system default, python 3.12
```
unset PYTHON
make setup-venv
make test
```

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
No
<!--
Thanks for opening a pull request!
-->
Part of apache#2700 

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->



# Rationale for this change
This lets us enable rule B208 on the linter.

## Are these changes tested?
`make lint` and `make test` should pass.

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->

Co-authored-by: Kevin Liu <kevinjqliu@users.noreply.github.com>
<!--
Thanks for opening a pull request!
-->
Part of apache#2700 
<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
This enables linter rule UP037

## Are these changes tested?
`make lint` and `make test` should pass.

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->

Co-authored-by: Kevin Liu <kevinjqliu@users.noreply.github.com>
<!--
Thanks for opening a pull request!
-->
Part of apache#2700 

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
This enables linter rule UP006.

Most of these changes revolve around using native-Python types instead
of using typing imports.

This is a big one, sorry! It seems easier just to do this in a single PR
(considering how mechanical this process is) as opposed to breaking it
up.

## Are these changes tested?
`make lint` and `make test` should pass.

## Are there any user-facing changes?
None.

<!-- In the case of user-facing changes, please add the changelog label.
-->
…#2740)

- Adds documentation example for configuring Google BigLake Metastore as
a REST catalog
- Includes configuration example with proper authentication setup

# Rationale for this change

GCP had the GA release of the BigLake Metastore Catalog Iceberg REST api
Nov 30 (see [release
notes](https://docs.cloud.google.com/bigquery/docs/release-notes#October_30_2025)).
There are few GCP docs available how to set this up in general, and with
pyiceberg specifically. Ray Data and probably many other tools use
pyiceberg under the hood, so documenting this would make it much easier
for folks in the GCP cloud to use pyiceberg at scale.

# Are these changes tested?
Yes, using the following test plan:

- [x] Configuration tested to work with pyiceberg 0.10.0 and Google
BigLake Metastore (Nov 11, 2025)
- [x] Documentation builds successfully
- [x] Configuration example follows existing format and style
- [x] Added links are valid

# Are there any user-facing changes?
Would add a new section in the docs when docs are published.

---------

Co-authored-by: Kyle <kyle.heath@recursion.com>
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Follow up to apache#2601 
`pandas`/`duckdb`/`ray` do not need `pyiceberg-core` 

This matches the previous pyproject.toml:

https://github.com/apache/iceberg-python/pull/2601/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711L133-L157

## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
nightly pypi silently fails (apache#2678) 
This PR adds notification when github workflow fails
Sent to `ci-jobs@iceberg.apache.org`

## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Closes apache#2705

This PR fixes `check-md-link` by pinning it to the [specific hash
allowed in
apache/infrastructure-actions](https://github.com/apache/infrastructure-actions/blob/ac09a0970d14dc1043a3787a95835c6efa07dd9c/actions.yml#L752-L753)
and also allow manual trigger

## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
# Rationale for this change

This is a big one, and was on my mind for a long time, but I think we
should clean this up before a 1.x release.

I bumped into this once more when I tried to extend from the
`IcebergBaseModel`, but that did not work well with the `Generic`.

From the beginning we had these Generic in the expressions system, but
it really never worked as we hoped. It came from Java where Generics are
much stronger, but the static typing of Python/mypy doesn't really
follow the types.


## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from
3.2.1 to 3.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/cibuildwheel/releases">pypa/cibuildwheel's
releases</a>.</em></p>
<blockquote>
<h2>v3.3.0</h2>
<ul>
<li>🐛 Fix an incompatibility with Docker v29 (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2660">#2660</a>)</li>
<li>✨ Adds <code>test-runtime</code> option, to customise how tests on
simulated/emulated environments are run (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2636">#2636</a>)</li>
<li>✨ Adds support for new <code>manylinux_2_35</code> images on 32-bit
ARM <code>armv7l</code>, offering better C++20 compatibility (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2656">#2656</a>)</li>
<li>✨ <code>build[uv]</code> is now supported on Android (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2587">#2587</a>)</li>
<li>✨ You can now install extras (such as <code>uv</code>) with a simple
option on the GitHub Action (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2630">#2630</a>)</li>
<li>✨ <code>{project}</code> and <code>{package}</code> placeholders are
now supported in <code>repair-wheel-command</code> (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2589">#2589</a>)</li>
<li>🛠 The versions set with <code>dependency-versions</code> no longer
constrain packages specified by your <code>build-system.requires</code>.
Previously, on platforms other than Linux, the constraints in this
option would remain in the environment during the build. This has been
tidied up make behaviour more consistent between platforms, and to
prevent version conflicts. (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2583">#2583</a>)</li>
<li>🛠 Improve the handling of <code>test-command</code> on Android,
enabling more options to be passed (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2590">#2590</a>)</li>
<li>📚 Docs improvements (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2618">#2618</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md">pypa/cibuildwheel's
changelog</a>.</em></p>
<blockquote>
<h3>v3.3.0</h3>
<p><em>12 November 2025</em></p>
<ul>
<li>🐛 Fix an incompatibility with Docker v29 (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2660">#2660</a>)</li>
<li>✨ Adds <code>test-runtime</code> option, to customise how tests on
simulated/emulated environments are run (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2636">#2636</a>)</li>
<li>✨ Adds support for new <code>manylinux_2_35</code> images on 32-bit
ARM <code>armv7l</code>, offering better C++20 compatibility (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2656">#2656</a>)</li>
<li>✨ <code>build[uv]</code> is now supported on Android (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2587">#2587</a>)</li>
<li>✨ You can now install extras (such as <code>uv</code>) with a simple
option on the GitHub Action (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2630">#2630</a>)</li>
<li>✨ <code>{project}</code> and <code>{package}</code> placeholders are
now supported in <code>repair-wheel-command</code> (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2589">#2589</a>)</li>
<li>🛠 The versions set with <code>dependency-versions</code> no longer
constrain packages specified by your <code>build-system.requires</code>.
Previously, on platforms other than Linux, the constraints in this
option would remain in the environment during the build. This has been
tidied up make behaviour more consistent between platforms, and to
prevent version conflicts. (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2583">#2583</a>)</li>
<li>🛠 Improve the handling of <code>test-command</code> on Android,
enabling more options to be passed (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2590">#2590</a>)</li>
<li>📚 Docs improvements (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2618">#2618</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/63fd63b352a9a8bdcc24791c9dbee952ee9a8abc"><code>63fd63b</code></a>
Bump version: v3.3.0</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/f4fe311fc96f735aa0d7beb74d6ae61801cf5382"><code>f4fe311</code></a>
fix: support Docker 29 (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2660">#2660</a>)</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/f6c810852d424abdddc6abc44d1e4b165797399d"><code>f6c8108</code></a>
feat: make the <code>{project}</code> placeholder available to
<code>repair-wheel-command</code> (#...</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/ccbae30b538eeacb2269052ca6603ba28485206b"><code>ccbae30</code></a>
feat: support uv with Android (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2587">#2587</a>)</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/1337e50f74cda9ab8a65568b3052d7e4b82da54c"><code>1337e50</code></a>
chore: pytest log_level is better than log_cli_level (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2657">#2657</a>)</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/720f8e266f6c4b5d3064fc8c366397266eaedfe5"><code>720f8e2</code></a>
feat: add manylinux_2_35 (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2656">#2656</a>)</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/4c7f3696b166b9a2cefcd9c33a7ace9648a823b9"><code>4c7f369</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2658">#2658</a>)</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/e1baa60eb0f6e7e57cbb5087940acefcaa86fb97"><code>e1baa60</code></a>
chore: enable more Ruff checks (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2654">#2654</a>)</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/1f2f8b28d5cf5adac0ccab4078dcb415f53c7d2b"><code>1f2f8b2</code></a>
fix: don't constrain <code>build-system.requires</code> with our
<code>dependency-versions</code> (...</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/8c5b02f42c051a818a176259fc5f4d1876cb5945"><code>8c5b02f</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2648">#2648</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/cibuildwheel/compare/v3.2.1...v3.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pypa/cibuildwheel&package-manager=github_actions&previous-version=3.2.1&new-version=3.3.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [mypy-boto3-glue](https://github.com/youtype/mypy_boto3_builder)
from 1.40.63 to 1.40.75.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/youtype/mypy_boto3_builder/releases">mypy-boto3-glue's
releases</a>.</em></p>
<blockquote>
<h2>8.8.0 - Python 3.8 runtime is back</h2>
<h3>Changed</h3>
<ul>
<li><code>[services]</code> <code>install_requires</code> section is
calculated based on dependencies in use, so
<code>typing-extensions</code> version is set properly</li>
<li><code>[all]</code> Replaced <code>typing</code> imports with
<code>collections.abc</code> with a fallback to <code>typing</code> for
Python &lt;3.9</li>
<li><code>[all]</code> Added aliases for <code>builtins.list</code>,
<code>builtins.set</code>, <code>builtins.dict</code>, and
<code>builtins.type</code>, so Python 3.8 runtime should work as
expected again (reported by <a
href="https://github.com/YHallouard"><code>@​YHallouard</code></a> in <a
href="https://redirect.github.com/youtype/mypy_boto3_builder/issues/340">#340</a>
and <a
href="https://github.com/Omri-Ben-Yair"><code>@​Omri-Ben-Yair</code></a>
in <a
href="https://redirect.github.com/youtype/mypy_boto3_builder/issues/336">#336</a>)</li>
<li><code>[all]</code> Unions use the same type annotations as the rest
of the structures due to proper fallbacks</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><code>[services]</code> Universal input/output shapes were not
replaced properly in service subresources</li>
<li><code>[docs]</code> Simplified doc links rendering for services</li>
<li><code>[services]</code> Cleaned up unnecessary imports in
<code>client.pyi</code></li>
<li><code>[builder]</code> Import records with fallback are always
rendered</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/youtype/mypy_boto3_builder/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mypy-boto3-glue&package-manager=uv&previous-version=1.40.63&new-version=1.40.75)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [prek](https://github.com/j178/prek) from 0.2.13 to 0.2.15.
<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.2.15</h2>
<h2>Release Notes</h2>
<p>Released on 2025-11-17.</p>
<h3>Highlights</h3>
<p>prek is now available on crates.io! You can build prek from source
via <code>cargo install prek</code>, for more details see <a
href="https://prek.j178.dev/installation/#build-from-source">Installation</a>.</p>
<h3>Enhancements</h3>
<ul>
<li>Clean up hook environments when install fails (<a
href="https://redirect.github.com/j178/prek/pull/1085">#1085</a>)</li>
<li>Prepare for publishing prek to crates.io (<a
href="https://redirect.github.com/j178/prek/pull/1088">#1088</a>)</li>
<li>Replace <code>serde-yaml</code> with <code>serde_saphyr</code> (<a
href="https://redirect.github.com/j178/prek/pull/1087">#1087</a>)</li>
<li>Warn unexpected keys in repo and hook level (<a
href="https://redirect.github.com/j178/prek/pull/1096">#1096</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>prek init-template-dir</code> fails in non-git repo (<a
href="https://redirect.github.com/j178/prek/pull/1093">#1093</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a href="https://github.com/j178"><code>@​j178</code></a></li>
</ul>
<h2>Install prek 0.2.15</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.2.15/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.2.15/prek-installer.ps1
| iex&quot;
</code></pre>
<h3>Install prebuilt binaries via Homebrew</h3>
<pre lang="sh"><code>brew install j178/tap/prek
</code></pre>
<h3>Install prebuilt binaries into your npm project</h3>
<pre lang="sh"><code>npm install @j178/prek@0.2.15
</code></pre>
<!-- 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.2.15</h2>
<p>Released on 2025-11-17.</p>
<h3>Highlights</h3>
<p>prek is now available on crates.io! You can build prek from source
via <code>cargo install prek</code> or <code>cargo binstall prek</code>,
for more details see <a
href="https://prek.j178.dev/installation/#build-from-source">Installation</a>.</p>
<h3>Enhancements</h3>
<ul>
<li>Clean up hook environments when install fails (<a
href="https://redirect.github.com/j178/prek/pull/1085">#1085</a>)</li>
<li>Prepare for publishing prek to crates.io (<a
href="https://redirect.github.com/j178/prek/pull/1088">#1088</a>)</li>
<li>Replace <code>serde-yaml</code> with <code>serde_saphyr</code> (<a
href="https://redirect.github.com/j178/prek/pull/1087">#1087</a>)</li>
<li>Warn unexpected keys in repo and hook level (<a
href="https://redirect.github.com/j178/prek/pull/1096">#1096</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>prek init-template-dir</code> fails in non-git repo (<a
href="https://redirect.github.com/j178/prek/pull/1093">#1093</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a href="https://github.com/j178"><code>@​j178</code></a></li>
</ul>
<h2>0.2.14</h2>
<p>Released on 2025-11-14.</p>
<h3>Enhancements</h3>
<ul>
<li>Support <code>PREK_CONTAINER_RUNTIME=podman</code> to override
container runtime (<a
href="https://redirect.github.com/j178/prek/pull/1033">#1033</a>)</li>
<li>Support rootless container runtime (<a
href="https://redirect.github.com/j178/prek/issues/1018">#1018</a>)</li>
<li>Support <code>language: unsupported</code> and <code>language:
unsupported_script</code> introduced in pre-commit v4.4 (<a
href="https://redirect.github.com/j178/prek/pull/1073">#1073</a>)</li>
<li>Tweak to regex used for mountinfo (<a
href="https://redirect.github.com/j178/prek/pull/1037">#1037</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>--files</code> argument - files referencing other projects
aren’t being filtered (<a
href="https://redirect.github.com/j178/prek/pull/1064">#1064</a>)</li>
<li>Unset <code>objectFormat</code> in <code>git init</code> (<a
href="https://redirect.github.com/j178/prek/pull/1048">#1048</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add scoop to installation (<a
href="https://redirect.github.com/j178/prek/pull/1067">#1067</a>)</li>
<li>Document workspace file visibility constraints (<a
href="https://redirect.github.com/j178/prek/pull/1071">#1071</a>)</li>
<li>Add <code>iceberg-python</code>, <code>msgspec</code> and
<code>humanize</code> to &quot;who is using prek&quot; (<a
href="https://redirect.github.com/j178/prek/pull/1039">#1039</a>, <a
href="https://redirect.github.com/j178/prek/pull/1042">#1042</a>, <a
href="https://redirect.github.com/j178/prek/pull/1063">#1063</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Add a hint to install when running inside a sub-project (<a
href="https://redirect.github.com/j178/prek/pull/1045">#1045</a>)</li>
<li>Add a hint to use <code>--refresh</code> when no configuration found
(<a
href="https://redirect.github.com/j178/prek/pull/1046">#1046</a>)</li>
<li>Run uv pip install from the current directory (<a
href="https://redirect.github.com/j178/prek/pull/1069">#1069</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/11f369ed7a209cd5e79bab764b3b173395272df2"><code>11f369e</code></a>
Bump version to 0.2.15 (<a
href="https://redirect.github.com/j178/prek/issues/1098">#1098</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/ce8faf7ea5b4eab13ca86a2d9d706564119c59af"><code>ce8faf7</code></a>
Add some more error context (<a
href="https://redirect.github.com/j178/prek/issues/1097">#1097</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/236967f63f1abafafce076bf13ed22a8a90fc749"><code>236967f</code></a>
Warn unexpected keys in repo and hook level (<a
href="https://redirect.github.com/j178/prek/issues/1096">#1096</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/af779bed9ec9791c786f6d84d4dec169f359a4d5"><code>af779be</code></a>
Simplify config deserialization (<a
href="https://redirect.github.com/j178/prek/issues/1095">#1095</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/abd6ed428da25486b859d106021f3145d5e2e895"><code>abd6ed4</code></a>
Tweak config parsing error message (<a
href="https://redirect.github.com/j178/prek/issues/1094">#1094</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/f38fe383298b1c3470db05cafaa2337a2f601424"><code>f38fe38</code></a>
Fix <code>prek init-template-dir</code> fails in non-git repo (<a
href="https://redirect.github.com/j178/prek/issues/1093">#1093</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/f46e6f901112f5e39f124c44aff311e6f6b0ae62"><code>f46e6f9</code></a>
Fix npmjs publish action</li>
<li><a
href="https://github.com/j178/prek/commit/7e06cffa7070a95875764e4232d00b19ae6df2da"><code>7e06cff</code></a>
Bump version to 0.2.15-alpha.3 (<a
href="https://redirect.github.com/j178/prek/issues/1091">#1091</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/bf8dc871e52ebad9b0ed9182fa7f8221c9ec9abb"><code>bf8dc87</code></a>
Bump version to 0.2.15-alpha.2 (<a
href="https://redirect.github.com/j178/prek/issues/1090">#1090</a>)</li>
<li><a
href="https://github.com/j178/prek/commit/0d0509f4f38d734ed20bff79469b10ecfa762c17"><code>0d0509f</code></a>
Bump version to 0.2.15-alpha.1 (<a
href="https://redirect.github.com/j178/prek/issues/1089">#1089</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/j178/prek/compare/v0.2.13...v0.2.15">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prek&package-manager=uv&previous-version=0.2.13&new-version=0.2.15)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [pyarrow](https://github.com/apache/arrow) from 21.0.0 to 22.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/apache/arrow/releases">pyarrow's
releases</a>.</em></p>
<blockquote>
<h2>Apache Arrow 22.0.0</h2>
<p>Release Notes URL: <a
href="https://arrow.apache.org/release/22.0.0.html">https://arrow.apache.org/release/22.0.0.html</a></p>
<h2>Apache Arrow 22.0.0 RC1</h2>
<p>Release Notes: Release Candidate: 22.0.0 RC1</p>
<h2>Apache Arrow 22.0.0 RC0</h2>
<p>Release Notes: Release Candidate: 22.0.0 RC0</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/arrow/commit/5aeb5f217f1ba39c428c9b481f393bd37097f69e"><code>5aeb5f2</code></a>
MINOR: [Release] Update versions for 22.0.0</li>
<li><a
href="https://github.com/apache/arrow/commit/81563ad2c53f886a4901191e0f2d05238398e177"><code>81563ad</code></a>
MINOR: [Release] Update .deb/.rpm changelogs for 22.0.0</li>
<li><a
href="https://github.com/apache/arrow/commit/c5055366fb5d6ae6a7c51ae50135ebf3203b48af"><code>c505536</code></a>
MINOR: [Release] Update CHANGELOG.md for 22.0.0</li>
<li><a
href="https://github.com/apache/arrow/commit/e04fafb1242ce428b5068f075de58579992f8c5c"><code>e04fafb</code></a>
<a
href="https://redirect.github.com/apache/arrow/issues/47838">GH-47838</a>:
[C++][Parquet] Set Variant specification version to 1 to align
with...</li>
<li><a
href="https://github.com/apache/arrow/commit/07e4d5aeadf0c24542309edc3056ed26dfc5f49c"><code>07e4d5a</code></a>
<a
href="https://redirect.github.com/apache/arrow/issues/47819">GH-47819</a>:
[CI][Packaging][Release] Avoid triggering Linux packages on
release...</li>
<li><a
href="https://github.com/apache/arrow/commit/e2fa94cf96c5b21924451ca52a6b522618c28a9e"><code>e2fa94c</code></a>
<a
href="https://redirect.github.com/apache/arrow/issues/47809">GH-47809</a>:
[CI][Release] Fix Windows verification job trying to install patch
...</li>
<li><a
href="https://github.com/apache/arrow/commit/2140934e4d79587ffa91e5d1462ac7ee673d2df0"><code>2140934</code></a>
<a
href="https://redirect.github.com/apache/arrow/issues/47738">GH-47738</a>:
[R] Update NEWS.md for 22.0.0 (<a
href="https://redirect.github.com/apache/arrow/issues/47739">#47739</a>)</li>
<li><a
href="https://github.com/apache/arrow/commit/08f5304074ce550c342f97e107081ea61a51e3da"><code>08f5304</code></a>
<a
href="https://redirect.github.com/apache/arrow/issues/47803">GH-47803</a>:
[C++][Parquet] Fix read out of bounds on invalid RLE data (<a
href="https://redirect.github.com/apache/arrow/issues/47804">#47804</a>)</li>
<li><a
href="https://github.com/apache/arrow/commit/d5b8e2b151730312ef80a975627ef7ff2423a232"><code>d5b8e2b</code></a>
<a
href="https://redirect.github.com/apache/arrow/issues/47438">GH-47438</a>:
[Python][Packaging] Set up wheel building for Python 3.14 (<a
href="https://redirect.github.com/apache/arrow/issues/47616">#47616</a>)</li>
<li><a
href="https://github.com/apache/arrow/commit/618f6090118606f83a93cdd88e47868db9c61b8f"><code>618f609</code></a>
<a
href="https://redirect.github.com/apache/arrow/issues/47795">GH-47795</a>:
[Archery] Add support for custom Docker registry (<a
href="https://redirect.github.com/apache/arrow/issues/47796">#47796</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/arrow/compare/apache-arrow-21.0.0...apache-arrow-22.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyarrow&package-manager=uv&previous-version=21.0.0&new-version=22.0.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [huggingface-hub](https://github.com/huggingface/huggingface_hub)
from 1.1.2 to 1.1.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/huggingface/huggingface_hub/releases">huggingface-hub's
releases</a>.</em></p>
<blockquote>
<h2>[v1.1.4] Paginated results in list_user_access</h2>
<ul>
<li>Paginated results in list_user_access by <a
href="https://github.com/Wauplin"><code>@​Wauplin</code></a> in <a
href="https://redirect.github.com/huggingface/huggingface_hub/pull/3535">huggingface/huggingface_hub#3535</a>
:warning: This patch release is a breaking chance but necessary to
reflect API update made server-side.</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/huggingface/huggingface_hub/compare/v1.1.3...v1.1.4">https://github.com/huggingface/huggingface_hub/compare/v1.1.3...v1.1.4</a></p>
<h2>[v1.1.3] Avoid HTTP 429 on downloads + fix missing arguments in
download API</h2>
<ul>
<li>Make 'name' optional in catalog deploy by <a
href="https://github.com/Wauplin"><code>@​Wauplin</code></a> in <a
href="https://redirect.github.com/huggingface/huggingface_hub/pull/3529">huggingface/huggingface_hub#3529</a></li>
<li>Pass through additional arguments from HfApi download utils by <a
href="https://github.com/schmrlng"><code>@​schmrlng</code></a> in <a
href="https://redirect.github.com/huggingface/huggingface_hub/pull/3531">huggingface/huggingface_hub#3531</a></li>
<li>Avoid redundant call to the Xet connection info URL by <a
href="https://github.com/Wauplin"><code>@​Wauplin</code></a> in <a
href="https://redirect.github.com/huggingface/huggingface_hub/pull/3534">huggingface/huggingface_hub#3534</a>
<ul>
<li>=&gt; this PR fixes HTTP 429 rate limit issues happening when
downloading a very large dataset of small files</li>
</ul>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/huggingface/huggingface_hub/compare/v1.1.0...v1.1.3">https://github.com/huggingface/huggingface_hub/compare/v1.1.0...v1.1.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/huggingface/huggingface_hub/commit/c8992647f02e254281f45afd01a0d28aaeee08ab"><code>c899264</code></a>
Release: v1.1.4</li>
<li><a
href="https://github.com/huggingface/huggingface_hub/commit/eeb0e73e35987316ad48c8b3b461f3a3af5aa26b"><code>eeb0e73</code></a>
Paginated results in list_user_access (<a
href="https://redirect.github.com/huggingface/huggingface_hub/issues/3535">#3535</a>)</li>
<li><a
href="https://github.com/huggingface/huggingface_hub/commit/5b7f672909b538d49d0b8a4234ea9927d83436c7"><code>5b7f672</code></a>
Release: v1.1.3</li>
<li><a
href="https://github.com/huggingface/huggingface_hub/commit/e1162cdc7c24ca3efb3bd0d00a9cff7fa9e70049"><code>e1162cd</code></a>
Avoid redundant call to the Xet connection info URL (<a
href="https://redirect.github.com/huggingface/huggingface_hub/issues/3534">#3534</a>)</li>
<li><a
href="https://github.com/huggingface/huggingface_hub/commit/4f941716b321ec7b5251e6fbc86094f03c97e940"><code>4f94171</code></a>
Pass through additional arguments from <code>HfApi</code> download utils
(<a
href="https://redirect.github.com/huggingface/huggingface_hub/issues/3531">#3531</a>)</li>
<li>See full diff in <a
href="https://github.com/huggingface/huggingface_hub/compare/v1.1.2...v1.1.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=huggingface-hub&package-manager=uv&previous-version=1.1.2&new-version=1.1.4)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [cython](https://github.com/cython/cython) from 3.2.0 to 3.2.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cython/cython/blob/master/CHANGES.rst">cython's
changelog</a>.</em></p>
<blockquote>
<h1>3.2.1 (2025-11-12)</h1>
<h2>Features added</h2>
<ul>
<li>Cython now leaves markers about its utility code dependencies in the
generated C code
to help debugging &quot;unused function&quot; C compiler warnings.
(Github issue :issue:<code>7294</code>)</li>
</ul>
<h2>Bugs fixed</h2>
<ul>
<li>
<p>Relative imports could fail if the shared utility module is used.
This bug was introduces in Cython 3.2.0.
(Github issue :issue:<code>7290</code>)</p>
</li>
<li>
<p>Under lock congestion, acquiring the GIL could crash in Python 3.11.
This bug was introduces in Cython 3.2.0.
(Github issue :issue:<code>7312</code>)</p>
</li>
<li>
<p>Using the shared utility module left an unused C function in user
modules with memoryviews.
To make debugging this kind of issue easier, Cython now leaves
&quot;used by …&quot; markers in the
generated C files that indicate why a specific piece of utility code was
included.
This bug was introduces in Cython 3.2.0.
(Github issue :issue:<code>7293</code>)</p>
</li>
<li>
<p>Code using the pre-import scope failed with an undefined name.
This bug was introduces in Cython 3.2.0.
(Github issue :issue:<code>7304</code>)</p>
</li>
<li>
<p>Includes all fixes as of Cython 3.1.7.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/cython/cython/commit/91685b68e8efc249863b50cd6b6d6bf2d4a9e285"><code>91685b6</code></a>
Prepare release of Cython 3.2.1.</li>
<li><a
href="https://github.com/cython/cython/commit/aff6117b3187994eff3f4823570b3ebe9cc539cf"><code>aff6117</code></a>
Update changelog.</li>
<li><a
href="https://github.com/cython/cython/commit/2ee6756d75c573da55edad5d8d10894a5ac71e31"><code>2ee6756</code></a>
Merge branch '3.1.x' into 3.2.x</li>
<li><a
href="https://github.com/cython/cython/commit/9be46dc8e0666b6fdd9a9efe2184addcc5cd35c0"><code>9be46dc</code></a>
Update changelog.</li>
<li><a
href="https://github.com/cython/cython/commit/6ab94443a9cab77eb07099d5703a8bbc6c54ee20"><code>6ab9444</code></a>
Fix version hex in thread state save (<a
href="https://redirect.github.com/cython/cython/issues/7313">#7313</a>)</li>
<li><a
href="https://github.com/cython/cython/commit/0a69663524d8f304e3af78aec4f3eda1620bd68a"><code>0a69663</code></a>
Merge branch '3.1.x' into 3.2.x</li>
<li><a
href="https://github.com/cython/cython/commit/44e095182aa5c03ffdb0847b9f98d4b4eba0e34c"><code>44e0951</code></a>
Prepare release of Cython 3.1.7.</li>
<li><a
href="https://github.com/cython/cython/commit/0d78f7290088485b666e8f7139ec2650823091d8"><code>0d78f72</code></a>
Update changelog.</li>
<li><a
href="https://github.com/cython/cython/commit/bc041bf90ea3647a12ea54a523f8a25bf0569684"><code>bc041bf</code></a>
Fix crash when assigning nested structs from a list of structs (<a
href="https://redirect.github.com/cython/cython/issues/7309">GH-7309</a>)</li>
<li><a
href="https://github.com/cython/cython/commit/62ba6b5b4f3a2261ae4f28ca21e487a04696450f"><code>62ba6b5</code></a>
Update changelog.</li>
<li>Additional commits viewable in <a
href="https://github.com/cython/cython/compare/3.2.0...3.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cython&package-manager=uv&previous-version=3.2.0&new-version=3.2.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [cachetools](https://github.com/tkem/cachetools) from 6.2.1 to
6.2.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst">cachetools's
changelog</a>.</em></p>
<blockquote>
<h1>v6.2.2 (2025-11-13)</h1>
<ul>
<li>
<p>Minor improvements from GitHub Copilot code review.</p>
</li>
<li>
<p>Improve documentation.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d"><code>4ee2600</code></a>
Release v6.2.2.</li>
<li><a
href="https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5"><code>f1cec39</code></a>
Minor improvements from GitHub Copilot code review.</li>
<li><a
href="https://github.com/tkem/cachetools/commit/e9117dc1e18389341ce4836f171e23d89f306b65"><code>e9117dc</code></a>
Merge pull request <a
href="https://redirect.github.com/tkem/cachetools/issues/371">#371</a>
from RektPunk/master</li>
<li><a
href="https://github.com/tkem/cachetools/commit/6774af212c0c95c2179f2644023fac74317d0262"><code>6774af2</code></a>
fix typo</li>
<li><a
href="https://github.com/tkem/cachetools/commit/4d8fc20d9eac2cf93d0d938127f6dd3c30441c22"><code>4d8fc20</code></a>
docs: add cachetools-async to related projects in README (<a
href="https://redirect.github.com/tkem/cachetools/issues/369">#369</a>)</li>
<li>See full diff in <a
href="https://github.com/tkem/cachetools/compare/v6.2.1...v6.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachetools&package-manager=uv&previous-version=6.2.1&new-version=6.2.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [duckdb](https://github.com/duckdb/duckdb-python) from 1.4.1 to
1.4.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/duckdb/duckdb-python/releases">duckdb's
releases</a>.</em></p>
<blockquote>
<h2>Python DuckDB v1.4.2</h2>
<p>This is a bug fix release for various issues discovered after we
released v1.4.1.</p>
<p>Also see the <a
href="https://github.com/duckdb/duckdb/releases/tag/v1.4.2">DuckDB
v1.4.2 Changelog</a>.</p>
<h2>What's Changed</h2>
<ul>
<li>Add Python 3.14 support by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/116">duckdb/duckdb-python#116</a></li>
<li>Fix ADBC driver path resolution when <code>importlib.util</code> was
not implicitly loaded by <a
href="https://github.com/henryharbeck"><code>@​henryharbeck</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/135">duckdb/duckdb-python#135</a></li>
<li>add targeted test workflow by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/145">duckdb/duckdb-python#145</a></li>
<li>Remove xfail annotations on adbc tests by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/147">duckdb/duckdb-python#147</a></li>
<li>fix config dict value typehint by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/151">duckdb/duckdb-python#151</a></li>
<li>Add df data and tz type columns back into the same loc after type
con… by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/150">duckdb/duckdb-python#150</a></li>
<li>Enable pyarrow with python 3.14 by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/152">duckdb/duckdb-python#152</a></li>
<li>spark imports by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/157">duckdb/duckdb-python#157</a></li>
<li>Fix failing test due to changed error msg by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/158">duckdb/duckdb-python#158</a></li>
<li>Add explicit .pl(lazy=True) overload by <a
href="https://github.com/J-Meyers"><code>@​J-Meyers</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/172">duckdb/duckdb-python#172</a></li>
<li>Fix InsertRelation on attached database by <a
href="https://github.com/evertlammerts"><code>@​evertlammerts</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb-python/pull/155">duckdb/duckdb-python#155</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/duckdb/duckdb-python/compare/v1.4.1...v1.4.2">https://github.com/duckdb/duckdb-python/compare/v1.4.1...v1.4.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/duckdb/duckdb-python/blob/main/CHANGELOG.md">duckdb's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/70380a14a1afd0b2117f41fcba65e0b2d888ee1a"><code>70380a1</code></a>
Submodule at 68d7555 for 1.4.2 release</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/13827e7bdca6fc21574ab10f4204a52696daf43a"><code>13827e7</code></a>
Fix InsertRelation on attached database (<a
href="https://redirect.github.com/duckdb/duckdb-python/issues/155">#155</a>)</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/7ccc8e91a5cdd288fa3a6b768921594f7cc8e9a2"><code>7ccc8e9</code></a>
Add explicit .pl(lazy=True) overload (<a
href="https://redirect.github.com/duckdb/duckdb-python/issues/172">#172</a>)</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/20bfd52a0932327fafd94fa16a25c6acc38f5dcb"><code>20bfd52</code></a>
review feedback</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/10e0ef38a24b22741c97b18afc18e0b2579c2ec9"><code>10e0ef3</code></a>
Add explicit polars overloads</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/95a9968bc10720401f41e982d2cf99b64399fe5d"><code>95a9968</code></a>
Fix InsertRelation on attached database</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/f3b8c8adf29dfd9c69df182eabb98fc7316221c0"><code>f3b8c8a</code></a>
Bumped submodule</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/f5618a3c3b09a4cb1983617a271628c37079800d"><code>f5618a3</code></a>
Bumped submodule</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/17a0cad1a2a9d052c5829ed3811cd485c182474d"><code>17a0cad</code></a>
remove experimental import because of the transitive dependencies that
requires</li>
<li><a
href="https://github.com/duckdb/duckdb-python/commit/e35a2ceedf5f85671f393a01d6621ea1e27b4516"><code>e35a2ce</code></a>
mypy shouldn't check experimental.spark</li>
<li>Additional commits viewable in <a
href="https://github.com/duckdb/duckdb-python/compare/v1.4.1...v1.4.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=duckdb&package-manager=uv&previous-version=1.4.1&new-version=1.4.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [boto3](https://github.com/boto/boto3) from 1.40.61 to 1.40.75.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/boto/boto3/commit/76bb63ddcaf878e5fea038518af5f84a1dccfcb1"><code>76bb63d</code></a>
Merge branch 'release-1.40.75'</li>
<li><a
href="https://github.com/boto/boto3/commit/4094ca62c842c51761d442a0eb6063565b5f07ad"><code>4094ca6</code></a>
Bumping version to 1.40.75</li>
<li><a
href="https://github.com/boto/boto3/commit/b37bc1c7514e9e1a8f9a4f3a1c650d8b4132f40d"><code>b37bc1c</code></a>
Add changelog entries from botocore</li>
<li><a
href="https://github.com/boto/boto3/commit/49140e033d31324b28e340329f866af3009f0d06"><code>49140e0</code></a>
Merge branch 'release-1.40.74'</li>
<li><a
href="https://github.com/boto/boto3/commit/f3fe4845588855a9871cf8182597e2ab2e26eca9"><code>f3fe484</code></a>
Merge branch 'release-1.40.74' into develop</li>
<li><a
href="https://github.com/boto/boto3/commit/786aff8131cd2e48dbe522643f06d84353dad2c5"><code>786aff8</code></a>
Bumping version to 1.40.74</li>
<li><a
href="https://github.com/boto/boto3/commit/0a66fb2138fec05d0ccbec07aba926c62f692e54"><code>0a66fb2</code></a>
Add changelog entries from botocore</li>
<li><a
href="https://github.com/boto/boto3/commit/cd8545493fb93990034989cb24c7f151fe7af200"><code>cd85454</code></a>
Merge branch 'release-1.40.73'</li>
<li><a
href="https://github.com/boto/boto3/commit/27d56447889f2c96bf1fda35929c7bf5add1cbad"><code>27d5644</code></a>
Merge branch 'release-1.40.73' into develop</li>
<li><a
href="https://github.com/boto/boto3/commit/5f2866c2057eb1c638c9aed9acf1e487eb7b4a93"><code>5f2866c</code></a>
Bumping version to 1.40.73</li>
<li>Additional commits viewable in <a
href="https://github.com/boto/boto3/compare/1.40.61...1.40.75">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=boto3&package-manager=uv&previous-version=1.40.61&new-version=1.40.75)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [click](https://github.com/pallets/click) from 8.3.0 to 8.3.1.
<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.1</h2>
<p>This is the Click 8.3.1 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.1/">https://pypi.org/project/click/8.3.1/</a>
Changes: <a
href="https://click.palletsprojects.com/page/changes/#version-8-3-1">https://click.palletsprojects.com/page/changes/#version-8-3-1</a>
Milestone: <a
href="https://github.com/pallets/click/milestone/28">https://github.com/pallets/click/milestone/28</a></p>
<ul>
<li>Don't discard pager arguments by correctly using
<code>subprocess.Popen</code>. <a
href="https://redirect.github.com/pallets/click/issues/3039">#3039</a>
<a
href="https://redirect.github.com/pallets/click/issues/3055">#3055</a></li>
<li>Replace <code>Sentinel.UNSET</code> default values by
<code>None</code> as they're passed through the
<code>Context.invoke()</code> method. <a
href="https://redirect.github.com/pallets/click/issues/3066">#3066</a>
<a
href="https://redirect.github.com/pallets/click/issues/3065">#3065</a>
<a
href="https://redirect.github.com/pallets/click/issues/3068">#3068</a></li>
<li>Fix conversion of <code>Sentinel.UNSET</code> happening too early,
which caused incorrect behavior for multiple parameters using the same
name. <a
href="https://redirect.github.com/pallets/click/issues/3071">#3071</a>
<a
href="https://redirect.github.com/pallets/click/issues/3079">#3079</a></li>
<li>Fix rendering when <code>prompt</code> and <code>confirm</code>
parameter <code>prompt_suffix</code> is empty. <a
href="https://redirect.github.com/pallets/click/issues/3019">#3019</a>
<a
href="https://redirect.github.com/pallets/click/issues/3021">#3021</a></li>
<li>When <code>Sentinel.UNSET</code> is found during parsing, it will
skip calls to <code>type_cast_value</code>. <a
href="https://redirect.github.com/pallets/click/issues/3069">#3069</a>
<a
href="https://redirect.github.com/pallets/click/issues/3090">#3090</a></li>
<li>Hide <code>Sentinel.UNSET</code> values as <code>None</code> when
looking up for other parameters through the context inside parameter
callbacks. <a
href="https://redirect.github.com/pallets/click/issues/3136">#3136</a>
<a
href="https://redirect.github.com/pallets/click/issues/3137">#3137</a></li>
</ul>
</blockquote>
</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.1</h2>
<p>Released 2025-11-15</p>
<ul>
<li>Don't discard pager arguments by correctly using
<code>subprocess.Popen</code>. :issue:<code>3039</code>
:pr:<code>3055</code></li>
<li>Replace <code>Sentinel.UNSET</code> default values by
<code>None</code> as they're passed through
the <code>Context.invoke()</code> method. :issue:<code>3066</code>
:issue:<code>3065</code> :pr:<code>3068</code></li>
<li>Fix conversion of <code>Sentinel.UNSET</code> happening too early,
which caused incorrect
behavior for multiple parameters using the same name.
:issue:<code>3071</code> :pr:<code>3079</code></li>
<li>Hide <code>Sentinel.UNSET</code> values as <code>None</code> when
looking up for other parameters
through the context inside parameter callbacks. :issue:<code>3136</code>
:pr:<code>3137</code></li>
<li>Fix rendering when <code>prompt</code> and <code>confirm</code>
parameter <code>prompt_suffix</code> is
empty. :issue:<code>3019</code> :pr:<code>3021</code></li>
<li>When <code>Sentinel.UNSET</code> is found during parsing, it will
skip calls to
<code>type_cast_value</code>. :issue:<code>3069</code>
:pr:<code>3090</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845"><code>1d038f2</code></a>
release version 8.3.1</li>
<li><a
href="https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66"><code>03f3889</code></a>
Fix Ruff UP038 warning (<a
href="https://redirect.github.com/pallets/click/issues/3141">#3141</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770"><code>3867781</code></a>
Fix Ruff UP038 warning</li>
<li><a
href="https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3"><code>b91bb95</code></a>
Provide altered context to callbacks to hide <code>UNSET</code> values
as <code>None</code> (<a
href="https://redirect.github.com/pallets/click/issues/3137">#3137</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7"><code>437e1e3</code></a>
Temporarily provide a fake context to the callback to hide
<code>UNSET</code> values as ...</li>
<li><a
href="https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5"><code>ea70da4</code></a>
Don't test using a file in docs/ (<a
href="https://redirect.github.com/pallets/click/issues/3102">#3102</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a"><code>e27b307</code></a>
Make <code>uv run --all-extras pyright --verifytypes click</code> pass
(<a
href="https://redirect.github.com/pallets/click/issues/3072">#3072</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c"><code>a92c573</code></a>
Fix test_edit to work with BSD sed (<a
href="https://redirect.github.com/pallets/click/issues/3129">#3129</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468"><code>bd131e1</code></a>
Fix test_edit to work with BSD sed</li>
<li><a
href="https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed"><code>0b5c6b7</code></a>
Add Best practices section (<a
href="https://redirect.github.com/pallets/click/issues/3127">#3127</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pallets/click/compare/8.3.0...8.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=click&package-manager=uv&previous-version=8.3.0&new-version=8.3.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material)
from 9.6.23 to 9.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/releases">mkdocs-material's
releases</a>.</em></p>
<blockquote>
<h2>mkdocs-material-9.7.0</h2>
<blockquote>
<p>[!WARNING]</p>
<p><strong>Material for MkDocs is now in maintenance mode</strong></p>
<p>This is the last release of Material for MkDocs that will receive new
features. Going forward, the Material for MkDocs team focuses on <a
href="https://zensical.org">Zensical</a>, a next-gen static site
generator built from first principles. We will provide critical bug
fixes and security updates for Material for MkDocs for 12 months at
least.</p>
</blockquote>
<p>→ <a
href="https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/">Read
the full announcement on our blog</a></p>
<p>This release includes all features that were previously exclusive to
the Insiders edition. These features are now freely available to
everyone.</p>
<p><strong>Note on deprecated plugins</strong>: The <a
href="https://squidfunk.github.io/mkdocs-material/plugins/projects/">projects</a>
and <a
href="https://squidfunk.github.io/mkdocs-material/plugins/typeset/">typeset</a>
plugins are included in this release, but must be considered deprecated.
Both plugins proved unsustainable to maintain and represent
architectural dead ends. They are provided as-is without ongoing
support.</p>
<p><strong>Changes</strong>:</p>
<ul>
<li>Added support for projects plugin (for compat, now deprecated)</li>
<li>Added support for typeset plugin (for compat, now deprecated)</li>
<li>Added support for pinned blog posts and author profiles</li>
<li>Added support for customizing pagination for blog index pages</li>
<li>Added support for customizing blog category sort order</li>
<li>Added support for staying on page when switching languages</li>
<li>Added support for disabling tags in table of contents</li>
<li>Added support for nested tags and shadow tags</li>
<li>Added support for footnote tooltips</li>
<li>Added support for instant previews</li>
<li>Added support for instant prefetching</li>
<li>Added support for custom social card layouts</li>
<li>Added support for custom social card background images</li>
<li>Added support for selectable rangs in code blocks</li>
<li>Added support for custom selectors for code annotations</li>
<li>Added support for configurable log level in privacy plugin</li>
<li>Added support for processing of external links in privacy
plugin</li>
<li>Added support for automatic image optimization via optimize
plugin</li>
<li>Added support for navigation paths (breadcrumbs)</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/8519">#8519</a>:
Vector accents do not render when using KaTeX</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG">mkdocs-material's
changelog</a>.</em></p>
<blockquote>
<p>mkdocs-material-9.7.0 (2025-11-11)</p>
<p>⚠️ Material for MkDocs is now in maintenance mode</p>
<p>This is the last release of Material for MkDocs that will receive new
features.
Going forward, the Material for MkDocs team focuses on Zensical, a
next-gen
static site generator built from first principles. We will provide
critical
bug fixes and security updates for Material for MkDocs for 12 months at
least.</p>
<p>Read the full announcement on our blog:
<a
href="https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/">https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/</a></p>
<p>This release includes all features that were previously exclusive to
the
Insiders edition. These features are now freely available to
everyone.</p>
<p>Note on deprecated plugins: The projects and typeset plugins are
included in
this release, but must be considered deprecated. Both plugins proved
unsustainable to maintain and represent architectural dead ends. They
are
provided as-is without ongoing support.</p>
<p>Changes:</p>
<ul>
<li>Added support for pinned blog posts and author profiles</li>
<li>Added support for customizing pagination for blog index pages</li>
<li>Added support for customizing blog category sort order</li>
<li>Added support for staying on page when switching languages</li>
<li>Added support for disabling tags in table of contents</li>
<li>Added support for nested tags and shadow tags</li>
<li>Added support for footnote tooltips</li>
<li>Added support for instant previews</li>
<li>Added support for instant prefetching</li>
<li>Added support for custom social card layouts</li>
<li>Added support for custom social card background images</li>
<li>Added support for selectable rangs in code blocks</li>
<li>Added support for custom selectors for code annotations</li>
<li>Added support for configurable log level in privacy plugin</li>
<li>Added support for processing of external links in privacy
plugin</li>
<li>Added support for automatic image optimization via optimize
plugin</li>
<li>Added support for navigation paths (breadcrumbs)</li>
<li>Fixed <a
href="https://redirect.github.com/squidfunk/mkdocs-material/issues/8519">#8519</a>:
Vector accents do not render when using KaTeX</li>
</ul>
<p>mkdocs-material-9.6.23 (2025-11-01)</p>
<ul>
<li>Updated Burmese translation</li>
</ul>
<p>mkdocs-material-9.6.22 (2025-10-15)</p>
<ul>
<li>Updated Georgian translation</li>
</ul>
<p>mkdocs-material-9.6.21 (2025-09-30)</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/3308731f1dce2e72809a2167d900b3381ca8d0d1"><code>3308731</code></a>
Updated changelog</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/dba54f7be6532893f8acddc6b89aa3c6491b90de"><code>dba54f7</code></a>
Fixed back-to-top button partial</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/7702610fd3f06ebcf4fd048b1839173926dd3290"><code>7702610</code></a>
Updated blog posts</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/3815f607a56c7390f41ebc30f36fd46a0d121ae1"><code>3815f60</code></a>
Documentation</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/b583ea7765ea770505cafea5c0ca931e12289ad1"><code>b583ea7</code></a>
Prepare 9.7.0 release</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/764178b0121523f7d77bda77b9a024627d1884e7"><code>764178b</code></a>
Merge Insiders features</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/9853cc3a10710e1ee8f641d32fe0cdc83a19673e"><code>9853cc3</code></a>
Documentation</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/f31cfa535509e46d23c4bc22994d02f49ec74826"><code>f31cfa5</code></a>
Removed documentation on sponsoring</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/a8b9ace30ae6f541314baac0e86dc7ba54aa2651"><code>a8b9ace</code></a>
Fixed height of symbols for KaTeX inline rendering</li>
<li><a
href="https://github.com/squidfunk/mkdocs-material/commit/c0addd8addc34b38d3049b214265e2b3bd3fc8d3"><code>c0addd8</code></a>
Updated blog post</li>
<li>Additional commits viewable in <a
href="https://github.com/squidfunk/mkdocs-material/compare/9.6.23...9.7.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-material&package-manager=uv&previous-version=9.6.23&new-version=9.7.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [daft](https://github.com/Eventual-Inc/Daft) from 0.6.12 to
0.6.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Eventual-Inc/Daft/releases">daft's
releases</a>.</em></p>
<blockquote>
<h2>v0.6.14</h2>
<h2>What's Changed 🚀</h2>
<h2>✨ Features</h2>
<ul>
<li>feat: embed text metrics <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5583">#5583</a>)</li>
<li>feat: Add description and attributes to custom udf metrics <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5574">#5574</a>)</li>
<li>feat(flotilla): Aggregate Completed Worker Metrics in StatsManager
<a href="https://github.com/srilman"><code>@​srilman</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5531">#5531</a>)</li>
<li>feat: add amplification metric for explode operator in native runner
<a href="https://github.com/samstokes"><code>@​samstokes</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5565">#5565</a>)</li>
</ul>
<h2>🐛 Bug Fixes</h2>
<ul>
<li>fix: Fix empty dataframe <code>show</code> issue <a
href="https://github.com/caican00"><code>@​caican00</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5595">#5595</a>)</li>
<li>fix: Fix openai test metrics fixture <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5593">#5593</a>)</li>
<li>fix: resolve docgen disk space failures by removing unused tools <a
href="https://github.com/ykdojo"><code>@​ykdojo</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5589">#5589</a>)</li>
<li>fix: fix imports in explode.rs <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5573">#5573</a>)</li>
<li>fix: Add support for parsing STRUCT with parentheses syntax <a
href="https://github.com/Lucas61000"><code>@​Lucas61000</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5449">#5449</a>)</li>
<li>fix: Dashboard Verbose Tracing Error <a
href="https://github.com/srilman"><code>@​srilman</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5567">#5567</a>)</li>
<li>fix: Skip prompt metrics tests on ray runner <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5564">#5564</a>)</li>
</ul>
<h2>📖 Documentation</h2>
<ul>
<li>docs: Update AI functions usage patterns <a
href="https://github.com/everettVT"><code>@​everettVT</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5568">#5568</a>)</li>
</ul>
<h2>🔧 Maintenance</h2>
<ul>
<li>chore: Enrich and unify the UDF properties displayed in the query
plan <a href="https://github.com/plotor"><code>@​plotor</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5553">#5553</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Eventual-Inc/Daft/compare/v0.6.13...v0.6.14">https://github.com/Eventual-Inc/Daft/compare/v0.6.13...v0.6.14</a></p>
<h2>v0.6.13</h2>
<h2>What's Changed 🚀</h2>
<h2>💥 Breaking Changes</h2>
<ul>
<li>refactor!: Remove support for creating File objects from bytes <a
href="https://github.com/universalmind303"><code>@​universalmind303</code></a>
(<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5556">#5556</a>)</li>
</ul>
<h2>✨ Features</h2>
<ul>
<li>feat: Prompt metrics <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5549">#5549</a>)</li>
<li>feat: Async udf metrics <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5541">#5541</a>)</li>
<li>feat: Support specifying dimensions for text embedding <a
href="https://github.com/samstokes"><code>@​samstokes</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5543">#5543</a>)</li>
<li>feat: support customized retries error message of S3 request <a
href="https://github.com/stayrascal"><code>@​stayrascal</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5447">#5447</a>)</li>
<li>feat: UDF metrics <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5507">#5507</a>)</li>
<li>feat: Support product <a
href="https://github.com/luoyuxia"><code>@​luoyuxia</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5515">#5515</a>)</li>
<li>feat: OTEL Metrics from Swordfish <a
href="https://github.com/srilman"><code>@​srilman</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5454">#5454</a>)</li>
<li>feat: add tos object source <a
href="https://github.com/stayrascal"><code>@​stayrascal</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5372">#5372</a>)</li>
<li>feat: Bind the name of the running UDF to the UDFActor <a
href="https://github.com/plotor"><code>@​plotor</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5514">#5514</a>)</li>
<li>feat: Support text documents in prompt <a
href="https://github.com/colin-ho"><code>@​colin-ho</code></a> (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5520">#5520</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/ada1ef1c4718c3cf9cd64210b3cdef777e2c6f6d"><code>ada1ef1</code></a>
chore: Enrich and unify the UDF properties displayed in the query plan
(<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5553">#5553</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/f49e3fa2a27c21c2fe3a873bc29e0c5e723806ef"><code>f49e3fa</code></a>
fix: Fix empty dataframe <code>show</code> issue (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5595">#5595</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/f970a08afb2c4ca5c298a49c3eea25bc6b32be6c"><code>f970a08</code></a>
fix: Fix openai test metrics fixture (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5593">#5593</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/b718d70bdf1e53ed0a4a7729fc0466fc4c680690"><code>b718d70</code></a>
feat: embed text metrics (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5583">#5583</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/2cd85a9913ea0cba74a78e8c26e7875e4a9687c4"><code>2cd85a9</code></a>
fix: resolve docgen disk space failures by removing unused tools (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5589">#5589</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/6159f1f14340157fa7e286e41a22c2f299ea5627"><code>6159f1f</code></a>
feat: Add description and attributes to custom udf metrics (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5574">#5574</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/d9d4a4e3a6f4a4ce9469c3e9ac4d26dee58d0fa7"><code>d9d4a4e</code></a>
fix: fix imports in explode.rs (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5573">#5573</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/47c6f102522a45af8f9e3ca5eec5ed9a426a2aa6"><code>47c6f10</code></a>
feat(flotilla): Aggregate Completed Worker Metrics in StatsManager (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5531">#5531</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/d14777c95468eddb35821660362495b0e95c4b1e"><code>d14777c</code></a>
docs: Update AI functions usage patterns (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5568">#5568</a>)</li>
<li><a
href="https://github.com/Eventual-Inc/Daft/commit/e3af26d7c07b7eb3f26b710239d41380c0a69da1"><code>e3af26d</code></a>
feat: add amplification metric for explode operator in native runner (<a
href="https://redirect.github.com/Eventual-Inc/Daft/issues/5565">#5565</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Eventual-Inc/Daft/compare/v0.6.12...v0.6.14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=daft&package-manager=uv&previous-version=0.6.12&new-version=0.6.14)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
<!--
Thanks for opening a pull request!
-->

Part of apache#2700 

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
This removes the exception for UP035 from Ruff. 

## Are these changes tested?
No-op.

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
# Rationale for this change

Follow up on apache#2750

## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Similar to apache/iceberg-rust#1855 

Add instructions to cleanup testpypi for `pyiceberg` in case of reaching
TestPyPI storage limits

## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
Closes apache#2776

# Rationale for this change

This PR removes the unused `start` and `length` fields from the
`FileScanTask`. While working on the models for rest scanning in apache#2775
we noticed that these fields were initialized but never accessed or used
anywhere in the code base.

## Are these changes tested?
```
> make test
...
3023 passed, 1392 deselected in 30.39s
```

## Are there any user-facing changes?
no
related to apache#2775 

# Rationale for this change

This PR aligns the `AlwaysTrue` and `AlwaysFalse` expression
serialization to use the boolean primitives `true`/`false` instead of
string representation, matching the Iceberg
[ExpressionParser](https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/expressions/ExpressionParser.java#L101-L108).

I know the spec defines the true/false expressions as string but today
we can't hit the scan planning client endpoint following these models.

I know the spec defines the true/false expressions as a string
representation, but currently we can't successfully use the scan
planning client endpoint with those models. Java's actual implementation
serializes these as boolean literals.

For instance, with what we have today we would throw an illegal argument
exception:

```
{
    "snapshot-id": 2540284336700708540,
    "filter": "true",
    "case-sensitive": true
}
```
Throws: `java.lang.IllegalArgumentException: argument
&quot;content&quot; is null`

But, this works just fine (notice no quotes):

```
{
    "snapshot-id": 2540284336700708540,
    "filter": true,
    "case-sensitive": true
}

```

## Are these changes tested?

Yes

## Are there any user-facing changes?

No, this only affects the JSON serialization format to match Java Cores
behavior.
dependabot bot and others added 10 commits November 25, 2025 15:03
…e#2768)

# Rationale for this change

This PR adds `pyarrow-stubs` to the project's development dependencies
which provide suggestions and parameter hints, speeding up development.

## Are these changes tested?
Tested the type hint 

## Are there any user-facing changes?
No. This is strictly a development dependency and does not affect the
runtime package distributed to users.
Related to  apache#2775 

# Rationale for this change

Update the Set Expression serialization to align with the REST spec.
Today, the set expression literals are serialized under items, instead
of values.

For instance:

```json

{
  "term": "foo",
  "type": "not-in",
  "items": [
    1,
    2,
    3
  ]
}

```
When it should be:
```json
{
  "term": "foo",
  "type": "not-in",
  "values": [
    1,
    2,
    3
  ]
}
```

**Rest ref**:
https://github.com/apache/iceberg/blob/47d5f5009eafbbb526e6e2c9cbeac3105bf34670/open-api/rest-catalog-open-api.yaml#L2353

**Expression ref**:
https://github.com/apache/iceberg/blob/d19e3ff07653167d902865281601a5da4e2f2def/core/src/main/java/org/apache/iceberg/expressions/ExpressionParser.java#L189-L192

## Are these changes tested?

Yes

## Are there any user-facing changes?

only serialization, and initialization stays the same.
Related to: apache#2518, apache#2775 

# Rationale for this change

This work was done by @Aniketsy, I just opened this to get the tests
passing, and we can merge for scan planning.

But, this PR allows `And` expressions to be deserialized from JSON
through Pydantic.

This PR aligns the `And` expression with the `Or`/`Not` pattern by
adding `IcebergBaseModel` as an inherited class. This gets teh And
expression into a proven serializable state, preparing it for the full
expression tree [de]serializability work in apache#2783.

## Are these changes tested?

Yes added a test and ensure that they align with EpressionParser in
Iceberg Java

## Are there any user-facing changes?

No this is just serialization

cc: @kevinjqliu @Fokko

---------

Co-authored-by: Aniket Singh Yadav <singhyadavaniket43@gmail.com>
# Rationale for this change

Iceberg spec expects `iceberg.required` attribute in addition to
`iceberg.id`:
> The column IDs must be stored in ORC type attributes using the key
`iceberg.id`, and `iceberg.required` to store "true" if the Iceberg
column is required, otherwise it will be optional.

https://iceberg.apache.org/spec/#orc

Fixes apache#2526


## Are these changes tested?

Yes

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Previous use of `del_branch_on_merge` 
```
github:
  del_branch_on_merge: true
```
is deprecated,
https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#delete-branch-on-merge

New way is to 
```
github:
  pull_requests:
    del_branch_on_merge: true
```

https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#pull_requests

## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change

## Are these changes tested?

## Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change

Following with the Java
[solution](https://github.com/apache/iceberg/pull/11868/files)
implementation on how to read partition specs when a source field was
dropped.

# Are these changes tested?

Yes, added one integration tests, and one unit test

# Are there any user-facing changes?

No

<!-- In the case of user-facing changes, please add the changelog label.
-->
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @kevinjqliu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a significant internal cleanup and modernization effort across the pyiceberg library. The core focus is on standardizing Python type hints, upgrading the expression handling to leverage Pydantic v2 capabilities, and refining the build process. These changes aim to improve code clarity, maintainability, and prepare the library for future developments, while also enhancing the developer experience through more informative warnings and robust schema handling.

Highlights

  • Type Hint Refactoring: A comprehensive refactoring effort has been undertaken across the entire codebase, migrating from typing.Dict, typing.List, typing.Set, and typing.Tuple to their more concise and performant built-in counterparts (dict, list, set, tuple). This change aligns with modern Python type hinting best practices (PEP 585).
  • Pydantic V2 Migration for Expressions: The expression module (pyiceberg/expressions) has been updated to leverage Pydantic v2 features, including model_validator for improved deserialization logic and SerializeAsAny for better handling of polymorphic types. This enhances the robustness and flexibility of expression parsing and serialization.
  • Makefile and Build System Enhancements: The Makefile now supports a PYTHON_ARG variable, allowing users to specify a Python version for uv run commands. Additionally, the build configuration (pyproject.toml, ruff.toml, setup.py) has been refined with updated dependency versions (e.g., mkdocs-material, cython), the inclusion of pyarrow-stubs for better type checking, and a custom sdist command to streamline source distribution packaging.
  • Improved Warning Messages: Several warnings.warn calls throughout the codebase have been updated to include stacklevel=2. This ensures that warning messages provide more accurate traceback information, pointing directly to the source of the warning in user code rather than internal library calls.
  • ORC Schema Conversion Enhancements: The pyiceberg/io/pyarrow.py module now includes logic to add the iceberg.required attribute to ORC metadata during schema conversion, ensuring better compatibility and metadata propagation for ORC files.
  • Partitioning with Dropped Fields: The PartitionSpec.partition_type method has been enhanced to gracefully handle scenarios where a source field for a partition specification has been dropped from the schema. It now uses UnknownType for such fields, preventing errors and allowing continued operation.
Ignored Files
  • Ignored by pattern: .github/workflows/** (9)
    • .github/workflows/check-md-link.yml
    • .github/workflows/license_check.yml
    • .github/workflows/nightly-pypi-build.yml
    • .github/workflows/pypi-build-artifacts.yml
    • .github/workflows/python-ci-docs.yml
    • .github/workflows/python-ci.yml
    • .github/workflows/python-release-docs.yml
    • .github/workflows/python-release.yml
    • .github/workflows/svn-build-artifacts.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a wide range of improvements, including a significant refactoring of the expressions module to better integrate with Pydantic, modernization of type hints across the codebase to use modern syntax (e.g., list instead of List), and updates to dependencies. It also includes bug fixes, such as handling dropped source fields in partition specs, and new features like adding the iceberg.required property to ORC metadata. Overall, these are excellent changes that improve code quality and maintainability. However, there is a critical issue in pyproject.toml where pyiceberg-core has been removed from several optional dependencies, which will break installations for those extras. This needs to be addressed before merging.

Comment thread pyproject.toml
Comment on lines 60 to 72
pandas = [
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
"pandas>=1.0.0,<3.0.0",
"pyarrow>=17.0.0",
]
duckdb = [
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
"duckdb>=0.5.0,<2.0.0",
"pyarrow>=17.0.0",
]
ray = [
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
"ray>=2.10.0,<=2.44.0",
"pyarrow>=17.0.0",
"pandas>=1.0.0,<3.0.0",
]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

critical

The pyiceberg-core dependency has been removed from the pandas, duckdb, and ray extras. This will break installations for users who rely on these extras, as pyiceberg-core is a required dependency for pyiceberg to function.

It seems the intention might be to have these extras implicitly depend on the pyarrow extra, which includes pyiceberg-core. However, pip does not support extras depending on other extras directly.

To fix this, pyiceberg-core should be added back to these extras, or, preferably, added to the main [project.dependencies] list since it's a core dependency.

Suggested change
pandas = [
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
"pandas>=1.0.0,<3.0.0",
"pyarrow>=17.0.0",
]
duckdb = [
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
"duckdb>=0.5.0,<2.0.0",
"pyarrow>=17.0.0",
]
ray = [
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
"ray>=2.10.0,<=2.44.0",
"pyarrow>=17.0.0",
"pandas>=1.0.0,<3.0.0",
]
pandas = [
"pandas>=1.0.0,<3.0.0",
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
]
duckdb = [
"duckdb>=0.5.0,<2.0.0",
"pyarrow>=17.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
]
ray = [
"ray>=2.10.0,<=2.44.0",
"pyarrow>=17.0.0",
"pandas>=1.0.0,<3.0.0",
"pyiceberg-core>=0.5.1,<0.8.0",
]

Comment thread pyiceberg/partitioning.py
Comment on lines +228 to +233
if source_field := schema_ids.get(field.source_id):
result_type = field.transform.result_type(source_field.field_type)
nested_fields.append(NestedField(field.field_id, field.name, result_type, required=source_field.required))
else:
# Since the source field has been drop we cannot determine the type
nested_fields.append(NestedField(field.field_id, field.name, UnknownType()))
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

This is a great improvement to handle cases where a partition field's source column has been dropped. Using UnknownType is a sensible fallback. However, the required attribute for the NestedField is not set when the source field is missing. It would be safer to default to required=False in this case, as we cannot determine the original requirement. This would prevent potential issues with consumers of the partition type schema that might assume a default required value.

                # Since the source field has been drop we cannot determine the type
                nested_fields.append(NestedField(field.field_id, field.name, UnknownType(), required=False))

@kevinjqliu kevinjqliu closed this Dec 5, 2025
@kevinjqliu kevinjqliu deleted the kevinjqliu/example branch December 5, 2025 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants