Skip to content

Conversation

@kevinjqliu
Copy link
Owner

Rationale for this change

Are these changes tested?

Are there any user-facing changes?

dependabot bot and others added 30 commits March 18, 2025 19:06
Bumps [griffe](https://github.com/mkdocstrings/griffe) from 1.6.0 to
1.6.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/griffe/releases">griffe's
releases</a>.</em></p>
<blockquote>
<h2>1.6.1</h2>
<h2><a
href="https://github.com/mkdocstrings/griffe/releases/tag/1.6.1">1.6.1</a>
- 2025-03-18</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/griffe/compare/1.6.0...1.6.1">Compare
with 1.6.0</a><!-- raw HTML omitted --></p>
<h3>Bug Fixes</h3>
<ul>
<li>Extend exports from already expanded modules (<a
href="https://github.com/mkdocstrings/griffe/commit/7e708cf9ffe1845d310633e8486b99d32d5fca5c">7e708cf</a>
by Timothée Mazzucotelli). <a
href="https://github.com/mkdocstrings/mkdocstrings/discussions/746">Issue-746</a></li>
<li>Update imports when merging stubs (<a
href="https://github.com/mkdocstrings/griffe/commit/5a92379e42c5a8bebc9323aabbbc9df881463718">5a92379</a>
by Timothée Mazzucotelli). <a
href="https://github.com/mkdocstrings/mkdocstrings/discussions/746">Issue-746</a></li>
<li>Don't alias attributes when inspecting (<a
href="https://github.com/mkdocstrings/griffe/commit/8063ba9fd4b3d1f782515b81ba362c63d4ccd2bd">8063ba9</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/366">Issue-366</a></li>
<li>Register top-module in collection earlier (<a
href="https://github.com/mkdocstrings/griffe/commit/2c389b57781c3c24a21141ad3d0103458418ec51">2c389b5</a>
by Timothée Mazzucotelli).</li>
<li>Prevent recursion errors by not looking into inherited members when
resolving base classes (<a
href="https://github.com/mkdocstrings/griffe/commit/87cbaf87f09103b5972a47fdf5437e00df6e830a">87cbaf8</a>
by Timothée Mazzucotelli).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md">griffe's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/mkdocstrings/griffe/releases/tag/1.6.1">1.6.1</a>
- 2025-03-18</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/griffe/compare/1.6.0...1.6.1">Compare
with 1.6.0</a><!-- raw HTML omitted --></p>
<h3>Bug Fixes</h3>
<ul>
<li>Extend exports from already expanded modules (<a
href="https://github.com/mkdocstrings/griffe/commit/7e708cf9ffe1845d310633e8486b99d32d5fca5c">7e708cf</a>
by Timothée Mazzucotelli). <a
href="https://github.com/mkdocstrings/mkdocstrings/discussions/746">Issue-746</a></li>
<li>Update imports when merging stubs (<a
href="https://github.com/mkdocstrings/griffe/commit/5a92379e42c5a8bebc9323aabbbc9df881463718">5a92379</a>
by Timothée Mazzucotelli). <a
href="https://github.com/mkdocstrings/mkdocstrings/discussions/746">Issue-746</a></li>
<li>Don't alias attributes when inspecting (<a
href="https://github.com/mkdocstrings/griffe/commit/8063ba9fd4b3d1f782515b81ba362c63d4ccd2bd">8063ba9</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/366">Issue-366</a></li>
<li>Register top-module in collection earlier (<a
href="https://github.com/mkdocstrings/griffe/commit/2c389b57781c3c24a21141ad3d0103458418ec51">2c389b5</a>
by Timothée Mazzucotelli).</li>
<li>Prevent recursion errors by not looking into inherited members when
resolving base classes (<a
href="https://github.com/mkdocstrings/griffe/commit/87cbaf87f09103b5972a47fdf5437e00df6e830a">87cbaf8</a>
by Timothée Mazzucotelli).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/eca96260ee7937dc49f8611de2771099feda9f96"><code>eca9626</code></a>
chore: Prepare release 1.6.1</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/c6f33666c4bd773a55e7b0b5c537dbcd543bf897"><code>c6f3366</code></a>
chore: Unify comment style</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/7e708cf9ffe1845d310633e8486b99d32d5fca5c"><code>7e708cf</code></a>
fix: Extend exports from already expanded modules</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/5a92379e42c5a8bebc9323aabbbc9df881463718"><code>5a92379</code></a>
fix: Update imports when merging stubs</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/c86acd89499b3877ad3c1f5ce790932a49ee05ac"><code>c86acd8</code></a>
tests: Update merger tests to use shorter helper</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/8ffd9fb48dff15c59a631b8da097bc46045ac9cf"><code>8ffd9fb</code></a>
chore: Template upgrade</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/f6387ae39ecb35e38172095c2c5c719e2514315e"><code>f6387ae</code></a>
ci: Increase mkdocstrings lower bound</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/8063ba9fd4b3d1f782515b81ba362c63d4ccd2bd"><code>8063ba9</code></a>
fix: Don't alias attributes when inspecting</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/2c389b57781c3c24a21141ad3d0103458418ec51"><code>2c389b5</code></a>
fix: Register top-module in collection earlier</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/2f05967a7fa8b3062a88a91c4df53a00ee2d840a"><code>2f05967</code></a>
style: Format</li>
<li>Additional commits viewable in <a
href="https://github.com/mkdocstrings/griffe/compare/1.6.0...1.6.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=griffe&package-manager=pip&previous-version=1.6.0&new-version=1.6.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.1.0
to 4.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pre-commit/pre-commit/releases">pre-commit's
releases</a>.</em></p>
<blockquote>
<h2>pre-commit v4.2.0</h2>
<h3>Features</h3>
<ul>
<li>For <code>language: python</code> first attempt a versioned python
executable for the default language version before consulting a
potentially unversioned <code>sys.executable</code>.
<ul>
<li><a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3430">#3430</a>
PR by <a
href="https://github.com/asottile"><code>@​asottile</code></a>.</li>
</ul>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Handle error during conflict detection when a file is named
&quot;HEAD&quot;
<ul>
<li><a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3425">#3425</a>
PR by <a
href="https://github.com/tusharsadhwani"><code>@​tusharsadhwani</code></a>.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md">pre-commit's
changelog</a>.</em></p>
<blockquote>
<h1>4.2.0 - 2025-03-18</h1>
<h3>Features</h3>
<ul>
<li>For <code>language: python</code> first attempt a versioned python
executable for
the default language version before consulting a potentially unversioned
<code>sys.executable</code>.
<ul>
<li><a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3430">#3430</a>
PR by <a
href="https://github.com/asottile"><code>@​asottile</code></a>.</li>
</ul>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Handle error during conflict detection when a file is named
&quot;HEAD&quot;
<ul>
<li><a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3425">#3425</a>
PR by <a
href="https://github.com/tusharsadhwani"><code>@​tusharsadhwani</code></a>.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/aa48766b888990e7b118d12cf757109d96e65a7e"><code>aa48766</code></a>
v4.2.0</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/bf6f11dc6ce59f2f12e5d02a6449ea2449aa64c4"><code>bf6f11d</code></a>
Merge pull request <a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3430">#3430</a>
from pre-commit/preferential-sys-impl</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/3e8d0f5e1c449381272b80241140e985631f9912"><code>3e8d0f5</code></a>
adjust python default_language_version to prefer versioned exe</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/ff7256cedf8c78b326f4503373d142a5a9827e90"><code>ff7256c</code></a>
Merge pull request <a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3425">#3425</a>
from tusharsadhwani/ambiguous-ref</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/b7eb412c798424a94ca83c72eed6f97271545dc4"><code>b7eb412</code></a>
fix: crash on ambiguous ref 'HEAD'</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/7b88c63ae691cb243c3137bce8fb870523e0a884"><code>7b88c63</code></a>
Merge pull request <a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3404">#3404</a>
from pre-commit/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/94b97e28f7cc7d9bcb536d7a3cf7ef6311e076fd"><code>94b97e2</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/2f93b804849e9237561417fbca29cb8d8ea4c905"><code>2f93b80</code></a>
Merge pull request <a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3401">#3401</a>
from pre-commit/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/4f90a1e88a80dd460f36e21d774d06bf0e73921b"><code>4f90a1e</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pre-commit/pre-commit/commit/aba1ce04e70162ca48b12f809ceffb253b788fe6"><code>aba1ce0</code></a>
Merge pull request <a
href="https://redirect.github.com/pre-commit/pre-commit/issues/3396">#3396</a>
from pre-commit/all-repos_autofix_all-repos-sed</li>
<li>Additional commits viewable in <a
href="https://github.com/pre-commit/pre-commit/compare/v4.1.0...v4.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pre-commit&package-manager=pip&previous-version=4.1.0&new-version=4.2.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav)
from 0.6.1 to 0.6.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oprypin/mkdocs-literate-nav/releases">mkdocs-literate-nav's
releases</a>.</em></p>
<blockquote>
<h2>v0.6.2</h2>
<ul>
<li><a
href="oprypin/mkdocs-literate-nav@6cc020a?w=1">Fix
compatibility with MkDocs 1.6+</a></li>
<li>Require at least MkDocs 1.4</li>
</ul>
<p>Other refactors, see <a
href="https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2">https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/7423f00fe2c26c879310f76631b8180cb2bb6ace"><code>7423f00</code></a>
v0.6.2</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/285344cc3e328c484deb5d932b722a252336e71b"><code>285344c</code></a>
Update deps</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/c39fba6d1d789fb7ab9ee31d75fc2ec5973797c0"><code>c39fba6</code></a>
Put more items into TYPE_CHECKING</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/889bcb240e2757f4a2a0efd3a0ef9d58db96427d"><code>889bcb2</code></a>
Update deps</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/12f9f79e8ce5d6ee2c934e7787d20d0f055e4c50"><code>12f9f79</code></a>
Add more lints, update deps</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/57210ef5a0e855d7cf49be6e2136e9208493cc13"><code>57210ef</code></a>
Update template, fix lints, update docs deps</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208"><code>6cc020a</code></a>
Fix types and compatibility with MkDocs 1.6</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/9c0564974487df94a62158028fd5e839f6779f68"><code>9c05649</code></a>
Template upgrade</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/07787d5ac634eca808742de2dfafad60f676d90c"><code>07787d5</code></a>
Refactor</li>
<li><a
href="https://github.com/oprypin/mkdocs-literate-nav/commit/1a7b4d74d283cdabe0b625614cf00e299d678c3f"><code>1a7b4d7</code></a>
Refactor for type annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-literate-nav&package-manager=pip&previous-version=0.6.1&new-version=0.6.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.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

Yikes! This makes sure to only produce a snapshot when there is anything
to update or append.

# Are these changes tested?

Yes, by checking the snapshots that are being produced.

# Are there any user-facing changes?

Smaller metadata and faster commits when there is nothing to
append/update :)

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

Adds support for encoding built-in Python values into JSON encoded
values, according to the spec:
https://iceberg.apache.org/spec/#json-single-value-serialization

# Are these changes tested?

Yes, with both expected/actual and round-trip tests.

# Are there any user-facing changes?

No
<!-- In the case of user-facing changes, please add the changelog label.
-->
Bumps [griffe](https://github.com/mkdocstrings/griffe) from 1.6.1 to
1.6.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/griffe/releases">griffe's
releases</a>.</em></p>
<blockquote>
<h2>1.6.2</h2>
<h2><a
href="https://github.com/mkdocstrings/griffe/releases/tag/1.6.2">1.6.2</a>
- 2025-03-20</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/griffe/compare/1.6.1...1.6.2">Compare
with 1.6.1</a><!-- raw HTML omitted --></p>
<h3>Code Refactoring</h3>
<ul>
<li>Maintain exports order (<code>__all__</code>) (<a
href="https://github.com/mkdocstrings/griffe/commit/ded36bf94ed4b8b83797e9da4a3d034d0533a5bd">ded36bf</a>
by Timothée Mazzucotelli).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md">griffe's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/mkdocstrings/griffe/releases/tag/1.6.2">1.6.2</a>
- 2025-03-20</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/griffe/compare/1.6.1...1.6.2">Compare
with 1.6.1</a><!-- raw HTML omitted --></p>
<h3>Code Refactoring</h3>
<ul>
<li>Maintain exports order (<code>__all__</code>) (<a
href="https://github.com/mkdocstrings/griffe/commit/ded36bf94ed4b8b83797e9da4a3d034d0533a5bd">ded36bf</a>
by Timothée Mazzucotelli).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/ed33a82b26679772c5525bd0470168043ec2ba88"><code>ed33a82</code></a>
chore: Prepare release 1.6.2</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/ded36bf94ed4b8b83797e9da4a3d034d0533a5bd"><code>ded36bf</code></a>
refactor: Maintain exports order (<code>__all__</code>)</li>
<li>See full diff in <a
href="https://github.com/mkdocstrings/griffe/compare/1.6.1...1.6.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=griffe&package-manager=pip&previous-version=1.6.1&new-version=1.6.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [mkdocstrings-python](https://github.com/mkdocstrings/python) from
1.16.6 to 1.16.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/python/releases">mkdocstrings-python's
releases</a>.</em></p>
<blockquote>
<h2>1.16.7</h2>
<h2><a
href="https://github.com/mkdocstrings/python/releases/tag/1.16.7">1.16.7</a>
- 2025-03-20</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/python/compare/1.16.6...1.16.7">Compare
with 1.16.6</a><!-- raw HTML omitted --></p>
<h3>Code Refactoring</h3>
<ul>
<li>Prepare <code>public</code> filtering method feature (<a
href="https://github.com/mkdocstrings/python/commit/fde20191cab20f39d9e5e729a95cdfa3390b8f1f">fde2019</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/python/issues/78">Issue-78</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/python/blob/main/CHANGELOG.md">mkdocstrings-python's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/mkdocstrings/python/releases/tag/1.16.7">1.16.7</a>
- 2025-03-20</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/python/compare/1.16.6...1.16.7">Compare
with 1.16.6</a><!-- raw HTML omitted --></p>
<h3>Code Refactoring</h3>
<ul>
<li>Prepare <code>public</code> filtering method feature (<a
href="https://github.com/mkdocstrings/python/commit/fde20191cab20f39d9e5e729a95cdfa3390b8f1f">fde2019</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/python/issues/78">Issue-78</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mkdocstrings/python/commit/148f2456ed9a337b6cff381171420a3b65186384"><code>148f245</code></a>
chore: Prepare release 1.16.7</li>
<li><a
href="https://github.com/mkdocstrings/python/commit/fde20191cab20f39d9e5e729a95cdfa3390b8f1f"><code>fde2019</code></a>
refactor: Prepare <code>public</code> filtering method feature</li>
<li><a
href="https://github.com/mkdocstrings/python/commit/9f43ed9899e15c01490901e90fcf0d78e77e48b7"><code>9f43ed9</code></a>
chore: Fix invalid Yore comments</li>
<li>See full diff in <a
href="https://github.com/mkdocstrings/python/compare/1.16.6...1.16.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocstrings-python&package-manager=pip&previous-version=1.16.6&new-version=1.16.7)](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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fixes: apache#1552

- [x] Add TimestampNanoType and TimestampTzNanoType
- [x] Add Readers and Writers
- [x] Enhance Transforms
- [x] Add String Expressions parsing for nanoseconds timestamps
- [x] Add format-version compatibility check for each type
- [x] Run compatibility check on TableMetadata creation
- [x] Unit tests

python native `datetime` module does not have support for nanoseconds.
We'll need to update our internal date time representations to use a
different library. numpy? arrow?
Closes apache#1778.

# Rationale for this change

Current, filters that are applied to the top-level struct column do not
work. For example, given a table of schema:
```
table {
  2: id: optional int
  1: data: required string
  3: location: struct<5: latitude: optional float, 6: longitude: optional float>
}
```
We want to support applying filters to field `location`, such as
`location is not null`. Note that filters like `location == {"latitude":
..., "longitude": ...}` wont work right now, but can be equivalently
rewritten to `location.latitude == ... and location.longitude == ...`.

# Are these changes tested?

Yes, tests were added at both the schema level and table reads.

# Are there any user-facing changes?

Support some basic filters on struct columns at the top-level.
Bumps [mkdocstrings-python](https://github.com/mkdocstrings/python) from
1.16.7 to 1.16.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/python/releases">mkdocstrings-python's
releases</a>.</em></p>
<blockquote>
<h2>1.16.8</h2>
<h2><a
href="https://github.com/mkdocstrings/python/releases/tag/1.16.8">1.16.8</a>
- 2025-03-24</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/python/compare/1.16.7...1.16.8">Compare
with 1.16.7</a><!-- raw HTML omitted --></p>
<h3>Bug Fixes</h3>
<ul>
<li>Prevent infinite recursion by detecting parent-member cycles (<a
href="https://github.com/mkdocstrings/python/commit/f3917e9dd50ca7f94d0dd22b6e4e11885b4617e7">f3917e9</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/368">Issue-griffe-368</a></li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li>Prepare feature for ordering by <code>__all__</code> value (<a
href="https://github.com/mkdocstrings/python/commit/bfb5b303f4ea2187c15bccc688f7eba25e7edfcc">bfb5b30</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/python/issues/219">Issue-219</a></li>
<li>Sort objects without line numbers last instead of first (<a
href="https://github.com/mkdocstrings/python/commit/681afb146225d98350a8eb2178aab07aec95fe6b">681afb1</a>
by Timothée Mazzucotelli).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/python/blob/main/CHANGELOG.md">mkdocstrings-python's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/mkdocstrings/python/releases/tag/1.16.8">1.16.8</a>
- 2025-03-24</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/python/compare/1.16.7...1.16.8">Compare
with 1.16.7</a><!-- raw HTML omitted --></p>
<h3>Bug Fixes</h3>
<ul>
<li>Prevent infinite recursion by detecting parent-member cycles (<a
href="https://github.com/mkdocstrings/python/commit/f3917e9dd50ca7f94d0dd22b6e4e11885b4617e7">f3917e9</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/368">Issue-griffe-368</a></li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li>Prepare feature for ordering by <code>__all__</code> value (<a
href="https://github.com/mkdocstrings/python/commit/bfb5b303f4ea2187c15bccc688f7eba25e7edfcc">bfb5b30</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/python/issues/219">Issue-219</a></li>
<li>Sort objects without line numbers last instead of first (<a
href="https://github.com/mkdocstrings/python/commit/681afb146225d98350a8eb2178aab07aec95fe6b">681afb1</a>
by Timothée Mazzucotelli).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mkdocstrings/python/commit/ecc5fe1d7df6056302c32b8843cf6cbb3866e8b9"><code>ecc5fe1</code></a>
chore: Prepare release 1.16.8</li>
<li><a
href="https://github.com/mkdocstrings/python/commit/eba28e5c4ba3205837b34877eae002b9e9fff226"><code>eba28e5</code></a>
Merge branch 'main' of github.com:mkdocstrings/python</li>
<li><a
href="https://github.com/mkdocstrings/python/commit/f3917e9dd50ca7f94d0dd22b6e4e11885b4617e7"><code>f3917e9</code></a>
fix: Prevent infinite recursion by detecting parent-member cycles</li>
<li><a
href="https://github.com/mkdocstrings/python/commit/bfb5b303f4ea2187c15bccc688f7eba25e7edfcc"><code>bfb5b30</code></a>
refactor: Prepare feature for ordering by <code>__all__</code>
value</li>
<li><a
href="https://github.com/mkdocstrings/python/commit/681afb146225d98350a8eb2178aab07aec95fe6b"><code>681afb1</code></a>
refactor: Sort objects without line numbers last instead of first</li>
<li><a
href="https://github.com/mkdocstrings/python/commit/e15dd3d319109fbc34336448e6f5a8a538e2aacd"><code>e15dd3d</code></a>
docs: Fix example usage for inventories</li>
<li>See full diff in <a
href="https://github.com/mkdocstrings/python/compare/1.16.7...1.16.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocstrings-python&package-manager=pip&previous-version=1.16.7&new-version=1.16.8)](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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from
2.23.1 to 2.23.2.
<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>v2.23.2</h2>
<ul>
<li>🐛 Workaround an issue with pyodide builds when running cibuildwheel
with a Python that was installed via UV (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2328">#2328</a>
via <a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2331">#2331</a>)</li>
<li>🛠 Dependency updates, including a manylinux update that fixes an <a
href="https://redirect.github.com/pypa/manylinux/issues/1760">'undefined
symbol' error</a> in gcc-toolset (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2334">#2334</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>v2.23.2</h3>
<p><em>24 March 2025</em></p>
<ul>
<li>🐛 Workaround an issue with pyodide builds when running cibuildwheel
with a Python that was installed via UV (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2328">#2328</a>
via <a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2331">#2331</a>)</li>
<li>🛠 Dependency updates, including a manylinux update that fixes an <a
href="https://redirect.github.com/pypa/manylinux/issues/1760">'undefined
symbol' error</a> in gcc-toolset (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2334">#2334</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/d04cacbc9866d432033b1d09142936e6a0e2121a"><code>d04cacb</code></a>
Bump version: v2.23.2</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/5f4e019684661085adb6558969c7fd389a532174"><code>5f4e019</code></a>
[2.x] Update dependencies (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2334">#2334</a>)</li>
<li><a
href="https://github.com/pypa/cibuildwheel/commit/2efa648f38e83a421aae82bc80002f8cabf92be7"><code>2efa648</code></a>
fix: always resolve --python argument (<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2328">#2328</a>)
(<a
href="https://redirect.github.com/pypa/cibuildwheel/issues/2331">#2331</a>)</li>
<li>See full diff in <a
href="https://github.com/pypa/cibuildwheel/compare/v2.23.1...v2.23.2">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=2.23.1&new-version=2.23.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [polars](https://github.com/pola-rs/polars) from 1.25.2 to 1.26.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pola-rs/polars/releases">polars's
releases</a>.</em></p>
<blockquote>
<h2>Python Polars 1.26.0</h2>
<h2>🚀 Performance improvements</h2>
<ul>
<li>Use views for binary hash tables and add single-key binary variant
(<a
href="https://redirect.github.com/pola-rs/polars/issues/21872">#21872</a>)</li>
<li>Avoid rechunking in gather (<a
href="https://redirect.github.com/pola-rs/polars/issues/21876">#21876</a>)</li>
<li>Switch ahash for foldhash (<a
href="https://redirect.github.com/pola-rs/polars/issues/21852">#21852</a>)</li>
<li>Put THP behind feature flag (<a
href="https://redirect.github.com/pola-rs/polars/issues/21853">#21853</a>)</li>
<li>Enable THP by default (<a
href="https://redirect.github.com/pola-rs/polars/issues/21829">#21829</a>)</li>
<li>Improve join performance for expanding joins (<a
href="https://redirect.github.com/pola-rs/polars/issues/21821">#21821</a>)</li>
<li>Use binary_search instead of contains in business-day functions (<a
href="https://redirect.github.com/pola-rs/polars/issues/21775">#21775</a>)</li>
</ul>
<h2>✨ Enhancements</h2>
<ul>
<li>Add support for io-plugins in new-streaming (<a
href="https://redirect.github.com/pola-rs/polars/issues/21870">#21870</a>)</li>
<li>Add <code>PartitionParted</code> (<a
href="https://redirect.github.com/pola-rs/polars/issues/21788">#21788</a>)</li>
<li>Minor improvements to EXPLAIN plan output (<a
href="https://redirect.github.com/pola-rs/polars/issues/21822">#21822</a>)</li>
<li>Add <code>explain_all</code> (<a
href="https://redirect.github.com/pola-rs/polars/issues/21797">#21797</a>)</li>
<li>Allow to use <code>repeat_by</code> with (nested) lists and structs
(<a
href="https://redirect.github.com/pola-rs/polars/issues/21206">#21206</a>)</li>
</ul>
<h2>🐞 Bug fixes</h2>
<ul>
<li>Fix <code>DataFrame.nan_to_null</code> work for tuple (<a
href="https://redirect.github.com/pola-rs/polars/issues/21861">#21861</a>)</li>
<li>Allow <code>pivot</code> on empty frame for all integer index dtypes
(<a
href="https://redirect.github.com/pola-rs/polars/issues/21890">#21890</a>)</li>
<li>Null panic on decimal aggregate (<a
href="https://redirect.github.com/pola-rs/polars/issues/21873">#21873</a>)</li>
<li>Join with categoricals on new-streaming engine (<a
href="https://redirect.github.com/pola-rs/polars/issues/21825">#21825</a>)</li>
<li>Fix div 0 partitioned group-by (<a
href="https://redirect.github.com/pola-rs/polars/issues/21842">#21842</a>)</li>
<li>Incorrect quote check in CSV parser (<a
href="https://redirect.github.com/pola-rs/polars/issues/21826">#21826</a>)</li>
<li>Add option to use relative paths for plugin libraries (<a
href="https://redirect.github.com/pola-rs/polars/issues/21675">#21675</a>)</li>
<li>Respect header separator in <code>sink_csv</code> (<a
href="https://redirect.github.com/pola-rs/polars/issues/21814">#21814</a>)</li>
<li>Deprecation of <code>streaming=False</code> (<a
href="https://redirect.github.com/pola-rs/polars/issues/21813">#21813</a>)</li>
<li>Fix collect_all type-coercion (<a
href="https://redirect.github.com/pola-rs/polars/issues/21810">#21810</a>)</li>
<li>Memory leaks in SharedStorage (<a
href="https://redirect.github.com/pola-rs/polars/issues/21798">#21798</a>)</li>
<li>Make <code>None</code> refer to <code>uncompressed</code> in
<code>sink_ipc</code> (<a
href="https://redirect.github.com/pola-rs/polars/issues/21786">#21786</a>)</li>
</ul>
<h2>📖 Documentation</h2>
<ul>
<li>Add sources and sinks to user-guide (<a
href="https://redirect.github.com/pola-rs/polars/issues/21780">#21780</a>)</li>
</ul>
<h2>🛠️ Other improvements</h2>
<ul>
<li>Change dynamic literals to be separate category (<a
href="https://redirect.github.com/pola-rs/polars/issues/21849">#21849</a>)</li>
<li>Add POLARS_TIMEOUT_MS for timing out slow Polars tests (<a
href="https://redirect.github.com/pola-rs/polars/issues/21887">#21887</a>)</li>
<li>Disable --dist loadgroup in pytest (<a
href="https://redirect.github.com/pola-rs/polars/issues/21885">#21885</a>)</li>
<li>Fix refcount assert being messed up by pytest assertion magic (<a
href="https://redirect.github.com/pola-rs/polars/issues/21884">#21884</a>)</li>
<li>Add env vars to configure new-streaming buffer sizes (<a
href="https://redirect.github.com/pola-rs/polars/issues/21818">#21818</a>)</li>
</ul>
<p>Thank you to all our contributors for making this release possible!
<a href="https://github.com/Kevin-Patyk"><code>@​Kevin-Patyk</code></a>,
<a
href="https://github.com/MarcoGorelli"><code>@​MarcoGorelli</code></a>,
<a
href="https://github.com/alexander-beedie"><code>@​alexander-beedie</code></a>,
<a href="https://github.com/anath2"><code>@​anath2</code></a>, <a
href="https://github.com/borchero"><code>@​borchero</code></a>, <a
href="https://github.com/coastalwhite"><code>@​coastalwhite</code></a>,
<a href="https://github.com/dongchao-cn"><code>@​dongchao-cn</code></a>,
<a href="https://github.com/kgv"><code>@​kgv</code></a>, <a
href="https://github.com/mcrumiller"><code>@​mcrumiller</code></a>, <a
href="https://github.com/nameexhaustion"><code>@​nameexhaustion</code></a>,
<a href="https://github.com/orlp"><code>@​orlp</code></a> and <a
href="https://github.com/ritchie46"><code>@​ritchie46</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pola-rs/polars/commit/ac9d598fd07d85b26a29bd7465a7bfa945b6f963"><code>ac9d598</code></a>
Python Polars 1.26.0 (<a
href="https://redirect.github.com/pola-rs/polars/issues/21894">#21894</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/2e194f39bb310d0bb8d63cdb2a0601fad572c045"><code>2e194f3</code></a>
refactor: Change dynamic literals to be separate category (<a
href="https://redirect.github.com/pola-rs/polars/issues/21849">#21849</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/9b63946a9e99f2d7f3ff13917069cc0dfd937ff5"><code>9b63946</code></a>
fix(python): Fix <code>DataFrame.nan_to_null</code> work for tuple (<a
href="https://redirect.github.com/pola-rs/polars/issues/21861">#21861</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/c459cf76edb4db0b834b3b72a23bbabda1f930f6"><code>c459cf7</code></a>
fix: Allow <code>pivot</code> on empty frame for all integer index
dtypes (<a
href="https://redirect.github.com/pola-rs/polars/issues/21890">#21890</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/04d01481c7aa30f69019a863172e6e1ee2709afe"><code>04d0148</code></a>
refactor(rust): Add bridge for multi scan (<a
href="https://redirect.github.com/pola-rs/polars/issues/21863">#21863</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/fda3191d531e0884ed2e58d8331e6d82b4193230"><code>fda3191</code></a>
feat: Add support for io-plugins in new-streaming (<a
href="https://redirect.github.com/pola-rs/polars/issues/21870">#21870</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/d95e343e04d47bcbeafc815a2d9855aa5099f1bb"><code>d95e343</code></a>
chore: Add POLARS_TIMEOUT_MS for timing out slow Polars tests (<a
href="https://redirect.github.com/pola-rs/polars/issues/21887">#21887</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/3c2ac5bd6d72f1a016441c36682a81c207d921d8"><code>3c2ac5b</code></a>
refactor(rust): Remove <code>FileType</code> in favor of
<code>ReaderCapabilities</code> for new-st...</li>
<li><a
href="https://github.com/pola-rs/polars/commit/4fd8d571d15bcb73ccf2122de6961abdb74c86d5"><code>4fd8d57</code></a>
chore: Disable --dist loadgroup in pytest (<a
href="https://redirect.github.com/pola-rs/polars/issues/21885">#21885</a>)</li>
<li><a
href="https://github.com/pola-rs/polars/commit/32c4780cb4d3fd640109a7ab67c427d547b6a9f4"><code>32c4780</code></a>
chore: Fix refcount assert being messed up by pytest assertion magic (<a
href="https://redirect.github.com/pola-rs/polars/issues/21884">#21884</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pola-rs/polars/compare/py-1.25.2...py-1.26.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=polars&package-manager=pip&previous-version=1.25.2&new-version=1.26.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.2.1 to
3.2.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyparsing/pyparsing/blob/master/CHANGES">pyparsing's
changelog</a>.</em></p>
<blockquote>
<h2>Version 3.2.2 - March, 2025</h2>
<ul>
<li>
<p>Released <code>cvt_pyparsing_pep8_names.py</code> conversion utility
to upgrade pyparsing-based
programs and libraries that use legacy camelCase names to use the new
PEP8-compliant
snake_case method names. The converter can also be imported into other
scripts as</p>
<pre><code> from pyparsing.tools.cvt_pyparsing_pep8_names import
pep8_converter
</code></pre>
</li>
<li>
<p>Fixed bug in <code>nested_expr</code> where nested contents were
stripped of whitespace when
the default whitespace characters were cleared (raised in this
StackOverflow
question <a
href="https://stackoverflow.com/questions/79327649">https://stackoverflow.com/questions/79327649</a>
by Ben Alan). Also addressed
bug in resolving PEP8 compliant argument name and legacy argument
name.</p>
</li>
<li>
<p>Fixed bug in <code>rest_of_line</code> and the underlying
<code>Regex</code> class, in which matching a
pattern that could match an empty string (such as
<code>&quot;.*&quot;</code> or <code>&quot;[A-Z]*&quot;</code> would not
raise
a <code>ParseException</code> at or beyond the end of the input string.
This could cause an
infinite parsing loop when parsing <code>rest_of_line</code> at the end
of the input string.
Reported by user Kylotan, thanks! (Issue <a
href="https://redirect.github.com/pyparsing/pyparsing/issues/593">#593</a>)</p>
</li>
<li>
<p>Enhancements and extra input validation for
<code>pyparsing.util.make_compressed_re</code> - see
usage in <code>examples/complex_chemical_formulas.py</code> and result
in the generated railroad
diagram <code>examples/complex_chemical_formulas_diagram.html</code>.
Properly escapes characters
like &quot;.&quot; and &quot;*&quot; that have special meaning in
regular expressions.</p>
</li>
<li>
<p>Fixed bug in <code>one_of()</code> to properly escape characters that
are regular expression markers
(such as '*', '+', '?', etc.) before building the internal regex.</p>
</li>
<li>
<p>Better exception message for <code>MatchFirst</code> and
<code>Or</code> expressions, showing all alternatives
rather than just the first one. Fixes Issue <a
href="https://redirect.github.com/pyparsing/pyparsing/issues/592">#592</a>,
reported by Focke, thanks!</p>
</li>
<li>
<p>Added return type annotation of &quot;-&gt; None&quot; for all
<code>__init__()</code> methods, to satisfy
<code>mypy --strict</code> type checking. PR submitted by FeRD, thank
you!</p>
</li>
<li>
<p>Added optional argument <code>show_hidden</code> to
<code>create_diagram</code> to show
elements that are used internally by pyparsing, but are not part of the
actual
parser grammar. For instance, the <code>Tag</code> class can insert
values into the parsed
results but it does not actually parse any input, so by default it is
not included
in a railroad diagram. By calling <code>create_diagram</code> with
<code>show_hidden</code> = <code>True</code>,
these internal elements will be included. (You can see this in the
tag_metadata.py
script in the examples directory.)</p>
</li>
<li>
<p>Fixed bug in <code>number_words.py</code> example. Also added
<code>ebnf_number_words.py</code> to demonstrate
using the <code>ebnf.py</code> EBNF parser generator to build a similar
parser directly from
EBNF.</p>
</li>
<li>
<p>Fixed syntax warning raised in <code>bigquery_view_parser.py</code>,
invalid escape sequence &quot;\s&quot;.
Reported by sameer-google, nice catch! (Issue <a
href="https://redirect.github.com/pyparsing/pyparsing/issues/598">#598</a>)</p>
</li>
<li>
<p>Added support for Python 3.14.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/b0a8be6b031b9948eab10438dec4face566b52da"><code>b0a8be6</code></a>
Prep for 3.2.2 release</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/f3abd5e86cd6352eeae7e329323a9e0392dd30a9"><code>f3abd5e</code></a>
Changes to adventureEngine.py to make a better diagram</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/0a030b411a3703a5492476651799f41337be8c3f"><code>0a030b4</code></a>
Some code cleanup, black</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/52ed22473b43f4ba6f88b2bf101bb1f5ef1b6a2b"><code>52ed224</code></a>
Update docs with PEP8 names</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/274ed9840bfc841c7af0b937abbe24d4fb279b06"><code>274ed98</code></a>
Fix one_of to use re.escape when merging strings into a regular
expression</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/0f4c884e7c64410a6c29d6151454827c6207a5ed"><code>0f4c884</code></a>
Add <code>non_capturing_groups</code> argument and extra input
validation to `pyparsing....</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/67d3078c6fce59f2bc03b762220ea4eea8463c40"><code>67d3078</code></a>
Some code cleanup in Forward._generateDefaultName and srange</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/28ef77eb0392ec592a0a22a770a95ef9405c9ef1"><code>28ef77e</code></a>
Rewrite to remove return from finally block (Issue <a
href="https://redirect.github.com/pyparsing/pyparsing/issues/578">#578</a>)</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/626cca75e362109a6d9f64e725c57bd0c678fcab"><code>626cca7</code></a>
Convert mayReturnEmpty to computed property, for proper handling of
Regex exp...</li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/4bb24bafd35bf41a3fe206d253cfda46d57df8ab"><code>4bb24ba</code></a>
Removed cached_property definition of mayReturnEmpty (conflicted with
attribu...</li>
<li>Additional commits viewable in <a
href="https://github.com/pyparsing/pyparsing/compare/3.2.1...3.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyparsing&package-manager=pip&previous-version=3.2.1&new-version=3.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Rationale for this change

Right now we deserialize the JSON into a dict, which is then passed into
the Pydantic model. It is better to fully delegate this to pydantic
because it is probably faster, and we can detect when models are created
from json or from Python dicts.

Required by apache#1770

This is also a recommendation by Pydantic itself:
https://docs.pydantic.dev/latest/concepts/performance/#in-general-use-model_validate_json-not-model_validatejsonloads

# Are these changes tested?

Existing tests

# Are there any user-facing changes?

No

<!-- 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} -->
Closes apache#1815

# Rationale for this change
We have a lot of dependabot commits (in the 0.9.0 release, 148 commits
were from contributors and 95 from Dependabot)

Dependabot config doc
https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#required-keys

# Are these changes tested?
yes

# Are there any user-facing changes?
no
<!-- In the case of user-facing changes, please add the changelog label.
-->
Bumps [griffe](https://github.com/mkdocstrings/griffe) from 1.6.2 to
1.6.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/griffe/releases">griffe's
releases</a>.</em></p>
<blockquote>
<h2>1.6.3</h2>
<h2><a
href="https://github.com/mkdocstrings/griffe/releases/tag/1.6.3">1.6.3</a>
- 2025-03-26</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/griffe/compare/1.6.2...1.6.3">Compare
with 1.6.2</a><!-- raw HTML omitted --></p>
<h3>Bug Fixes</h3>
<ul>
<li>Allow setting <code>lineno</code>, <code>endlineno</code> and
<code>value</code> through aliases (<a
href="https://github.com/mkdocstrings/griffe/commit/d038eaa1eb96cab7e70a4ceebacd4246f6a1cfb4">d038eaa</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe-pydantic/issues/29">Issue-griffe-pydantic-29</a></li>
<li>Don't resolve attribute values to attribute with same name (<a
href="https://github.com/mkdocstrings/griffe/commit/25cc58fae55b6b34b2938fdce6acc80ea0e78aff">25cc58f</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/367">Issue-367</a></li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li>Improve objects conversion to annotation during dynamic analysis (<a
href="https://github.com/mkdocstrings/griffe/commit/716d27b0c9bdd798d35a23d999431b62b0b647da">716d27b</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/369">Issue-369</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md">griffe's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/mkdocstrings/griffe/releases/tag/1.6.3">1.6.3</a>
- 2025-03-26</h2>
<p><!-- raw HTML omitted --><a
href="https://github.com/mkdocstrings/griffe/compare/1.6.2...1.6.3">Compare
with 1.6.2</a><!-- raw HTML omitted --></p>
<h3>Bug Fixes</h3>
<ul>
<li>Allow setting <code>lineno</code>, <code>endlineno</code> and
<code>value</code> through aliases (<a
href="https://github.com/mkdocstrings/griffe/commit/d038eaa1eb96cab7e70a4ceebacd4246f6a1cfb4">d038eaa</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe-pydantic/issues/29">Issue-griffe-pydantic-29</a></li>
<li>Don't resolve attribute values to attribute with same name (<a
href="https://github.com/mkdocstrings/griffe/commit/25cc58fae55b6b34b2938fdce6acc80ea0e78aff">25cc58f</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/367">Issue-367</a></li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li>Improve objects conversion to annotation during dynamic analysis (<a
href="https://github.com/mkdocstrings/griffe/commit/716d27b0c9bdd798d35a23d999431b62b0b647da">716d27b</a>
by Timothée Mazzucotelli). <a
href="https://redirect.github.com/mkdocstrings/griffe/issues/369">Issue-369</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/1d1a91952c31b9b227aae1569ec5a31d3ebf4ff2"><code>1d1a919</code></a>
chore: Prepare release 1.6.3</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/d038eaa1eb96cab7e70a4ceebacd4246f6a1cfb4"><code>d038eaa</code></a>
fix: Allow setting <code>lineno</code>, <code>endlineno</code> and
<code>value</code> through aliases</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/25cc58fae55b6b34b2938fdce6acc80ea0e78aff"><code>25cc58f</code></a>
fix: Don't resolve attribute values to attribute with same name</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/716d27b0c9bdd798d35a23d999431b62b0b647da"><code>716d27b</code></a>
refactor: Improve objects conversion to annotation during dynamic
analysis</li>
<li><a
href="https://github.com/mkdocstrings/griffe/commit/df39eab5f5995e1c2380f86b41d7b7267396f5e8"><code>df39eab</code></a>
tests: Add test for class inheriting self through base class</li>
<li>See full diff in <a
href="https://github.com/mkdocstrings/griffe/compare/1.6.2...1.6.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=griffe&package-manager=pip&previous-version=1.6.2&new-version=1.6.3)](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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.2.2 to
3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyparsing/pyparsing/blob/master/CHANGES">pyparsing's
changelog</a>.</em></p>
<blockquote>
<h2>Version 3.2.3 - March, 2025</h2>
<ul>
<li>Fixed bug released in 3.2.2 in which <code>nested_expr</code> could
overwrite parse actions
for defined content, and could truncate list of items within a nested
list.
Fixes Issue <a
href="https://redirect.github.com/pyparsing/pyparsing/issues/600">#600</a>,
reported by hoxbro and luisglft, with helpful diag logs and
repro code.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/4dace945ce8cd7211c5d935b6d7be21c86cad8da"><code>4dace94</code></a>
Fixed bug in nested_expr introduced in 3.2.2, fixes <a
href="https://redirect.github.com/pyparsing/pyparsing/issues/600">#600</a></li>
<li><a
href="https://github.com/pyparsing/pyparsing/commit/3b3ca8d3c00018a56c3ddb1f198a5400a973bc77"><code>3b3ca8d</code></a>
Prep for 3.2.3 development</li>
<li>See full diff in <a
href="https://github.com/pyparsing/pyparsing/compare/3.2.2...3.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyparsing&package-manager=pip&previous-version=3.2.2&new-version=3.2.3)](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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
First see if we can produce some deletion vectors.

Resolves apache#1549
### Rationale for this change

Time to give this another go 😆 

When reading a Parquet file using PyArrow, there is some metadata stored
in the Parquet file to either make it a large type (eg `large_string`,
or a normal type (`string`). The difference is that the large types use
a 64 bit offset to encode their arrays. This is not always needed, and
we can could first check all the in the types of which it is stored, and
let PyArrow decide here:


https://github.com/apache/iceberg-python/blob/300b8405a0fe7d0111321e5644d704026af9266b/pyiceberg/io/pyarrow.py#L1579

In PyArrow today we just bump everything to a large type, which might
lead to additional memory consumption because it allocates an int64
array to allocate the offsets, instead of an int32.

I thought we would be good to go for this now with the new lower bound
of PyArrow to 17. But, it looks like we still have to wait for Arrow 18
to fix the issue with the `date` types:

apache/arrow#43183

Fixes: apache#1049

### Are these changes tested?

Yes, existing tests :)

### Are there any user-facing changes?

Before, PyIceberg would always return the large Arrow types (eg,
`large_string` instead of `string`). After this change, it will return
the type it was written with.
<!--
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

Closed apache#1852

# Are these changes tested?

N/A

# Are there any user-facing changes?

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

Small copy-paste :)

# 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#1851

# Are these changes tested?

test_types.py

# Are there any user-facing changes?

N/A
<!-- In the case of user-facing changes, please add the changelog label.
-->
**Use a balanced tree instead of an unbalanced one to prevent recursion
error in `create_match_filter`**

<!-- Closes apache#1776 -->

## Rationale for this change

In the `create_match_filter` function, the previous implementation used
`functools.reduce(operator.or_, filters)` to combine expressions. This
approach constructed a right-heavy, unbalanced tree, which could lead to
a `RecursionError` when dealing with a large number of expressions
(e.g., over 1,000).

To address this, we've introduced the `_build_balanced_tree` function.
This utility constructs a balanced binary tree of expressions, reducing
the maximum depth to O(log n) and thereby preventing potential recursion
errors. This makes expression construction more stable and scalable,
especially when working with large datasets.

```python

# Past behavior

Or(*[A, B, C, D]) = Or(A, Or(B, Or(C, D))

# New behavior
Or(*[A, B, C, D]) = Or(Or(A, B), Or(C, D))

```

## Are these changes tested?

Yes, existing tests cover the functionality of `Or`. Additional testing
was done with large expression sets (e.g., 10,000 items) to ensure that
balanced tree construction avoids recursion errors.

## Are there any user-facing changes?

No, there are no user-facing changes. This is an internal implementation
improvement that does not affect the public API.

Closes apache#1759
Closes apache#1785

<!-- In the case of user-facing changes, please add the changelog label.
-->
This pull request addresses the handling of decimal physical type
matching in Parquet. It implements rules such that:
For precision ≤ 9, values are stored as `int32`.
For precision ≤ 18, values are stored as `int64`.
For higher precision, values are stored as a `FIXED_LEN_BYTE_ARRAY`.

Closes apache#1789

---------

Co-authored-by: redpheonixx <[email protected]>
Co-authored-by: redpheonixx <[email protected]>
<!--
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#1835

Original implementation, `!=`
([not_equal](https://arrow.apache.org/docs/python/generated/pyarrow.compute.not_equal.html#pyarrow.compute.not_equal))
does not account for `null` values. It emits `null` when either sides
are `null`
The new implementation, first checks for `not_equal`. And on null
values, returns `true` only if both sides are `null`

Similar to apache/iceberg-rust#1045

# Are these changes tested?
Yes

# Are there any user-facing changes?
No

<!-- In the case of user-facing changes, please add the changelog label.
-->
Fokko and others added 28 commits April 8, 2025 07:07
With apache/iceberg#12593 Row lineage is
required and Spark uses Java 1.8.0 that does not write the required
`first-row-id` field in the snapshot.

Therefore, I think it would be good to just use the SNAPSHOT for now
until it gets released. We can easily revert the PR once that's done.

Closes apache#1898

<!--
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.
-->
Potential fix for apache#1804

Might want to write a test, but not sure yet how to reproduce without
using glue.

Closes apache#1804
# 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.
-->
Bumps [duckdb](https://github.com/duckdb/duckdb) from 1.2.1 to 1.2.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/duckdb/duckdb/releases">duckdb's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.2 Bugfix Release</h2>
<p>This is a bug fix release for various issues discovered after we
released 1.2.1. There are no new major features, just bug fixes.
Database files created by DuckDB versions all the way back to v0.9.* can
be read by this version.</p>
<h2>What's Changed</h2>
<ul>
<li>[Python] Fix deadlock in <code>from_parquet</code> with
<code>file_globs</code> caused by not releasing the GIL by <a
href="https://github.com/Tishj"><code>@​Tishj</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16522">duckdb/duckdb#16522</a></li>
<li>[Python] Fix some stubs issues by <a
href="https://github.com/Tishj"><code>@​Tishj</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16523">duckdb/duckdb#16523</a></li>
<li>[Dev] Fix issues in the benchmark runner related to the serialized
<code>storage_version</code> by <a
href="https://github.com/Tishj"><code>@​Tishj</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16533">duckdb/duckdb#16533</a></li>
<li>Set estimated cardinality to newly created logical operators by <a
href="https://github.com/jeewonhh"><code>@​jeewonhh</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16528">duckdb/duckdb#16528</a></li>
<li>custom_extension_repository to also be the default
autoinstall_extension_repository by <a
href="https://github.com/carlopi"><code>@​carlopi</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16459">duckdb/duckdb#16459</a></li>
<li>[Python Dev] No longer trigger a DeprecationWarning when using a UDF
by <a href="https://github.com/Tishj"><code>@​Tishj</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16433">duckdb/duckdb#16433</a></li>
<li>Fixup problems connected to prep to 1.2.1 by <a
href="https://github.com/carlopi"><code>@​carlopi</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16578">duckdb/duckdb#16578</a></li>
<li>Give preference to quote=escape if we can't do better by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16584">duckdb/duckdb#16584</a></li>
<li>Max ART key length by <a
href="https://github.com/taniabogatsch"><code>@​taniabogatsch</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16588">duckdb/duckdb#16588</a></li>
<li>Issue <a
href="https://redirect.github.com/duckdb/duckdb/issues/16617">#16617</a>:
Window Constant Finalize by <a
href="https://github.com/hawkfish"><code>@​hawkfish</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16628">duckdb/duckdb#16628</a></li>
<li>[Fix] Index scan - Move the table scan state into the local state by
<a
href="https://github.com/taniabogatsch"><code>@​taniabogatsch</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16650">duckdb/duckdb#16650</a></li>
<li>[Fix] Perform eager constraint checking during physical batch insert
by <a
href="https://github.com/taniabogatsch"><code>@​taniabogatsch</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16651">duckdb/duckdb#16651</a></li>
<li>[Python] Don't push down <code>OPTIONAL_FILTER</code> into
<code>pyarrow</code> for the arrow scan. by <a
href="https://github.com/Tishj"><code>@​Tishj</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16657">duckdb/duckdb#16657</a></li>
<li>move OrderPreservationRecursive to physical_plan_generator.hpp by <a
href="https://github.com/jeewonhh"><code>@​jeewonhh</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16656">duckdb/duckdb#16656</a></li>
<li>Add libs folder to bundled static libs by <a
href="https://github.com/taniabogatsch"><code>@​taniabogatsch</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16655">duckdb/duckdb#16655</a></li>
<li>Avoid UMA by <a
href="https://github.com/krlmlr"><code>@​krlmlr</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16641">duckdb/duckdb#16641</a></li>
<li>Avoid UMA by <a
href="https://github.com/krlmlr"><code>@​krlmlr</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16643">duckdb/duckdb#16643</a></li>
<li>Avoid UMA by <a
href="https://github.com/krlmlr"><code>@​krlmlr</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16642">duckdb/duckdb#16642</a></li>
<li>Several fixes for CSV fuzzer tests by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16636">duckdb/duckdb#16636</a></li>
<li>FSST Fix: Correctly detect the situation where we have 3 bytes
remaining by <a
href="https://github.com/Mytherin"><code>@​Mytherin</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16688">duckdb/duckdb#16688</a></li>
<li>Fix <a
href="https://redirect.github.com/duckdb/duckdb/issues/16627">#16627</a>:
handle DISTINCT FROM and NOT DISTINCT FROM in zone-map pushdown by <a
href="https://github.com/Mytherin"><code>@​Mytherin</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16691">duckdb/duckdb#16691</a></li>
<li>Fix <a
href="https://redirect.github.com/duckdb/duckdb/issues/16554">#16554</a>:
emit blobs as part of .dump by <a
href="https://github.com/Mytherin"><code>@​Mytherin</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16693">duckdb/duckdb#16693</a></li>
<li>add avro by <a
href="https://github.com/samansmink"><code>@​samansmink</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16708">duckdb/duckdb#16708</a></li>
<li>Issue <a
href="https://redirect.github.com/duckdb/duckdb/issues/16652">#16652</a>:
Implicit Ordered Aggregation by <a
href="https://github.com/hawkfish"><code>@​hawkfish</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16718">duckdb/duckdb#16718</a></li>
<li>Issue <a
href="https://redirect.github.com/duckdb/duckdb/issues/16649">#16649</a>:
SelectNth Remainders by <a
href="https://github.com/hawkfish"><code>@​hawkfish</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16705">duckdb/duckdb#16705</a></li>
<li>[Dev] Fix <code>EXPORT DATABASE</code> missing semicolons in
produced <code>schema.sql</code> by <a
href="https://github.com/Tishj"><code>@​Tishj</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16723">duckdb/duckdb#16723</a></li>
<li>Always throw the error that happens the earliest in the CSV Reader
by <a href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16728">duckdb/duckdb#16728</a></li>
<li>Fix <a
href="https://redirect.github.com/duckdb/duckdb/issues/16662">#16662</a>
by <a href="https://github.com/lnkuiper"><code>@​lnkuiper</code></a> in
<a
href="https://redirect.github.com/duckdb/duckdb/pull/16732">duckdb/duckdb#16732</a></li>
<li>[Test] Add missing test for eager-constraint checking fix by <a
href="https://github.com/taniabogatsch"><code>@​taniabogatsch</code></a>
in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16745">duckdb/duckdb#16745</a></li>
<li>Clamp reported memory in duckdb_memory by <a
href="https://github.com/Mytherin"><code>@​Mytherin</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16753">duckdb/duckdb#16753</a></li>
<li>CLI <code>-help</code>: Fix default value for -nullvalue by <a
href="https://github.com/carlopi"><code>@​carlopi</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16755">duckdb/duckdb#16755</a></li>
<li>Apply RLE fix to v1.2 by <a
href="https://github.com/Mytherin"><code>@​Mytherin</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16756">duckdb/duckdb#16756</a></li>
<li>[Arrow] Setting schema of the keys to not null for maps and properly
write Null columns to arrow by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16711">duckdb/duckdb#16711</a></li>
<li>Fix min/max values in numeric cast exception message by <a
href="https://github.com/abramk"><code>@​abramk</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16777">duckdb/duckdb#16777</a></li>
<li>[ADBC] Add wrapper to connection new, set options at connection
init, if any. by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16748">duckdb/duckdb#16748</a></li>
<li>Remove delta from extensions built on a nightly basis (vs
1.2-histrionicus) by <a
href="https://github.com/carlopi"><code>@​carlopi</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16794">duckdb/duckdb#16794</a></li>
<li><code>PhysicalTopN</code>: Buffer-allocated <code>StringHeap</code>
by <a href="https://github.com/lnkuiper"><code>@​lnkuiper</code></a> in
<a
href="https://redirect.github.com/duckdb/duckdb/pull/16770">duckdb/duckdb#16770</a></li>
<li>[chore] Add v1.2.2 to storage versions, preparation for upcoming
patch release by <a
href="https://github.com/carlopi"><code>@​carlopi</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16799">duckdb/duckdb#16799</a></li>
<li>Fix issue when line is empty by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16823">duckdb/duckdb#16823</a></li>
<li>Add extra check in normalize for commit, rollback and abort by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16802">duckdb/duckdb#16802</a></li>
<li>Fix <a
href="https://redirect.github.com/duckdb/duckdb/issues/16783">#16783</a>:
Fix DistributivityRule by <a
href="https://github.com/flashmouse"><code>@​flashmouse</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16804">duckdb/duckdb#16804</a></li>
<li>Internal <a
href="https://redirect.github.com/duckdb/duckdb/issues/4492">#4492</a>:
Ignore Nulls Orrification by <a
href="https://github.com/hawkfish"><code>@​hawkfish</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16837">duckdb/duckdb#16837</a></li>
<li>Fix <a
href="https://redirect.github.com/duckdb/duckdb/issues/16836">#16836</a>:
rewrite main column data in case of an update that only modifies the
validity by <a
href="https://github.com/Mytherin"><code>@​Mytherin</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16851">duckdb/duckdb#16851</a></li>
<li>Initialize type by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16848">duckdb/duckdb#16848</a></li>
<li>[CSV Reader] Add check on ever quoted for candidate selection by <a
href="https://github.com/pdet"><code>@​pdet</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16868">duckdb/duckdb#16868</a></li>
<li>Clean up partial deletes when encountering a transaction conflict in
a vector by <a
href="https://github.com/Mytherin"><code>@​Mytherin</code></a> in <a
href="https://redirect.github.com/duckdb/duckdb/pull/16905">duckdb/duckdb#16905</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/duckdb/duckdb/commit/d3970ae863320b456e21de93a692dedc02824565"><code>d3970ae</code></a>
add special handling for comparison against nans to ensure compatibility
with...</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/91ac9db4366d8911038d639ec5e9d89a54c1382c"><code>91ac9db</code></a>
Fix default value for -nullvalue</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/5f6fc8f3be9ed223404a10c5a0f7afbdd06b4b48"><code>5f6fc8f</code></a>
Fix <a
href="https://redirect.github.com/duckdb/duckdb/issues/16554">#16554</a>:
fix blobs as part of .dump</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/01f6a909ba6fe771629180196aed39570883d598"><code>01f6a90</code></a>
looks nicer</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/e6da38a97be8d441e984b19629f128269e6eebac"><code>e6da38a</code></a>
slight cleanup</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/2ba742302a0e23d7ac9437c159b6a095fc94efe8"><code>2ba7423</code></a>
add the adjusted version of the submitted reproduction as a test</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/20445e790a3d1066d01d8f03fd2216050b78ccec"><code>20445e7</code></a>
py::none() is produced for an OPTIONAL_FILTER, skip these inside OR /
AND fil...</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/d9673ba133b6b97cb81ea34dfe66420ae995e7e7"><code>d9673ba</code></a>
[Python Dev] No longer trigger a DeprecationWarning when using a UDF (<a
href="https://redirect.github.com/duckdb/duckdb/issues/16433">#16433</a>)</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/3d1a1a9c2a737f24ff0b81d3acc7e1ced075c46c"><code>3d1a1a9</code></a>
[Python] Fix some stubs issues (<a
href="https://redirect.github.com/duckdb/duckdb/issues/16523">#16523</a>)</li>
<li><a
href="https://github.com/duckdb/duckdb/commit/e5eca77cb7f99d74ced18c0f33e51533538b67cd"><code>e5eca77</code></a>
fix stubs for LambdaExpression</li>
<li>Additional commits viewable in <a
href="https://github.com/duckdb/duckdb/compare/v1.2.1...v1.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=duckdb&package-manager=pip&previous-version=1.2.1&new-version=1.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.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
apache#1906

# Are these changes tested?
Yes, unit tested

# Are there any user-facing changes?
Not yet

<!-- In the case of user-facing changes, please add the changelog label.
-->
Bumps [typing-extensions](https://github.com/python/typing_extensions)
from 4.13.1 to 4.13.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python/typing_extensions/releases">typing-extensions's
releases</a>.</em></p>
<blockquote>
<h2>4.13.2</h2>
<ul>
<li>Fix <code>TypeError</code> when taking the union of
<code>typing_extensions.TypeAliasType</code> and a
<code>typing.TypeAliasType</code> on Python 3.12 and 3.13.
Patch by <a href="https://github.com/jorenham">Joren
Hammudoglu</a>.</li>
<li>Backport from CPython PR <a
href="https://redirect.github.com/python/cpython/pull/132160">#132160</a>
to avoid having user arguments shadowed in generated
<code>__new__</code> by
<code>@typing_extensions.deprecated</code>.
Patch by <a href="https://github.com/Viicos">Victorien Plot</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python/typing_extensions/blob/main/CHANGELOG.md">typing-extensions's
changelog</a>.</em></p>
<blockquote>
<h1>Release 4.13.2 (April 10, 2025)</h1>
<ul>
<li>Fix <code>TypeError</code> when taking the union of
<code>typing_extensions.TypeAliasType</code> and a
<code>typing.TypeAliasType</code> on Python 3.12 and 3.13.
Patch by <a href="https://github.com/jorenham">Joren
Hammudoglu</a>.</li>
<li>Backport from CPython PR <a
href="https://redirect.github.com/python/cpython/pull/132160">#132160</a>
to avoid having user arguments shadowed in generated
<code>__new__</code> by
<code>@typing_extensions.deprecated</code>.
Patch by <a href="https://github.com/Viicos">Victorien Plot</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/python/typing_extensions/commit/4525e9dbbd177b4ef8a84f55ff5fe127582a071d"><code>4525e9d</code></a>
Prepare release 4.13.2 (<a
href="https://redirect.github.com/python/typing_extensions/issues/583">#583</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/88a0c200ceb0ccfe4329d3db8a1a863a2381e44c"><code>88a0c20</code></a>
Do not shadow user arguments in generated <code>__new__</code> by
<code>@deprecated</code> (<a
href="https://redirect.github.com/python/typing_extensions/issues/581">#581</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/281d7b0ca6edad384e641d1066b759c280602919"><code>281d7b0</code></a>
Add 3rd party tests for litestar (<a
href="https://redirect.github.com/python/typing_extensions/issues/578">#578</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/8092c3996f4902ad9c74ac2d1d8dd19371ecbaa3"><code>8092c39</code></a>
fix <code>TypeAliasType</code> union with
<code>typing.TypeAliasType</code> (<a
href="https://redirect.github.com/python/typing_extensions/issues/575">#575</a>)</li>
<li>See full diff in <a
href="https://github.com/python/typing_extensions/compare/4.13.1...4.13.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typing-extensions&package-manager=pip&previous-version=4.13.1&new-version=4.13.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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Rationale for this change

Intermediate fix while the test is broken, reported in
duckdb/duckdb-iceberg#185

# 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

Found out I broke this myself after doing a `git bisect`:

```
36d383d is the first bad commit
commit 36d383d
Author: Fokko Driesprong <[email protected]>
Date:   Thu Jan 23 07:50:54 2025 +0100

    PyArrow: Avoid buffer-overflow by avoid doing a sort (apache#1555)
    
    Second attempt of apache#1539
    
    This was already being discussed back here:
    apache#208 (comment)
    
    This PR changes from doing a sort, and then a single pass over the table
    to the approach where we determine the unique partition tuples filter on
    them individually.
    
    Fixes apache#1491
    
    Because the sort caused buffers to be joined where it would overflow in
    Arrow. I think this is an issue on the Arrow side, and it should
    automatically break up into smaller buffers. The `combine_chunks` method
    does this correctly.
    
    Now:
    
    ```
    0.42877754200890195
    Run 1 took: 0.2507691659993725
    Run 2 took: 0.24833179199777078
    Run 3 took: 0.24401691700040828
    Run 4 took: 0.2419595829996979
    Average runtime of 0.28 seconds
    ```
    
    Before:
    
    ```
    Run 0 took: 1.0768639159941813
    Run 1 took: 0.8784021250030492
    Run 2 took: 0.8486490420036716
    Run 3 took: 0.8614017910003895
    Run 4 took: 0.8497851670108503
    Average runtime of 0.9 seconds
    ```
    
    So it comes with a nice speedup as well :)
    
    ---------
    
    Co-authored-by: Kevin Liu <[email protected]>

 pyiceberg/io/pyarrow.py                    |  129 ++-
 pyiceberg/partitioning.py                  |   39 +-
 pyiceberg/table/__init__.py                |    6 +-
 pyproject.toml                             |    1 +
 tests/benchmark/test_benchmark.py          |   72 ++
 tests/integration/test_partitioning_key.py | 1299 ++++++++++++++--------------
 tests/table/test_locations.py              |    2 +-
 7 files changed, 805 insertions(+), 743 deletions(-)
 create mode 100644 tests/benchmark/test_benchmark.py
```

Closes apache#1917


# Are these changes tested?

# Are there any user-facing changes?

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

`TSaslClientTransport` cannot be reopen. This PR changes the behavior to
recreate a `TSaslClientTransport` when its already closed.

Note, `_HiveClient` should be used with context manager, but can be used
without.
# Rationale for this change

@kevinjqliu PTAL. I took the liberty of providing a fix for this since I
was curious where this was coming from, hope you don't mind! I've
cherry-picked your commit with the test.


![image](https://github.com/user-attachments/assets/14227da9-1f4a-4411-88f0-309907d3d332)


Java produces:

```json
{
    "added-data-files": "1",
    "added-files-size": "707",
    "added-records": "2",
    "app-id": "local-1743678304626",
    "changed-partition-count": "1",
    "deleted-data-files": "1",
    "deleted-records": "3",
    "engine-name": "spark",
    "engine-version": "3.5.5",
    "iceberg-version": "Apache Iceberg 1.8.1 (commit 9ce0fcf0af7becf25ad9fc996c3bad2afdcfd33d)",
    "removed-files-size": "693",
    "spark.app.id": "local-1743678304626",
    "total-data-files": "3",
    "total-delete-files": "0",
    "total-equality-deletes": "0",
    "total-files-size": "1993",
    "total-position-deletes": "0",
    "total-records": "4"
}
```

# Are these changes tested?

# Are there any user-facing changes?

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

---------

Co-authored-by: Kevin Liu <[email protected]>
Co-authored-by: Kevin Liu <[email protected]>
apache#1902)

<!--
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 apache#1884 

# Rationale for this change
table.inspect.entries() fails when table is MOR table and has Delete
Files present in it. Iceberg MOR Table is created via Apache Spark 3.5.0
with Iceberg 1.5.0 and it's being read via PyIceberg 0.9.0 using
StaticTable.from_metadata()


# Are these changes tested?
Yes

# Are there any user-facing changes?
No

<!-- 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
Issue is fixed upstream,
duckdb/duckdb-iceberg#185

This reverts commit eb8756a. (apache#1918)

# Are these changes tested?

# Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
This change allow making use of the `version-hint.text` file when a
static table is instantiated with a `metadata_location` not ending with
'.metadata.json'.
User can just point to the table location, and metadata file path will
be read from `version-hint.text`.


Closes apache#763

# Rationale for this change

`version-hint.text` is useful in context where you does not want or need
a full-fledge catalog.
Our use case is sharing datasets publicly as Iceberg tables on S3.

# Are these changes tested?

No yet.

# Are there any user-facing changes?

Yes. User can now points `StaticTable` to the table location rather than
a specific version file.
<!--
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

This fix addressed issue apache#1922 and changed the behavior for both
`_oss_fs` and `_s3_fs` to be able to parse `s3.force-virtual-addressing`
correctly.

# Are these changes tested?

No unit tests are given to this change yet

# Are there any user-facing changes?

No

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

# Rationale for this change
This is an additional good to have feature where users can convert valid
Float and Double strings to Iceberg FloatType and Double Literal.

# Are these changes tested?
Yes. I have also added tests for the same.

# Are there any user-facing changes?
Yes. Users can cast valid float and double strings to `FloatType` and
`DecimalType`
# Rationale for this change

Today, we have a copy of the `TableMetadata` on the `Table` and the
`Transaction`. This PR changes that logic to re-use the one on the
table, and add the changes to the one on the `Transaction`.

This also allows us to stack changes, for example, to first change a
schema, and then write data with the new schema right away.

Also a prerequisite for
apache#1772

# Are these changes tested?

Includes a new test :)

# Are there any user-facing changes?

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

# Rationale for this change
Feature request: Ability to pass transform name as string in
`add_fields`

# Are these changes tested?
Yes

# Are there any user-facing changes?
Yes. Users will be able to pass transform names as string while calling
add_fields method of update_spec.
Closes apache#1910 

# Rationale for this change

When working with the GlueCatalog, I may already have a GlueClient that
I've instantiated from elsewhere, and perhaps wish to keep. This allows
passing our client to the GlueCatalog constructor so that we aren't
forced into getting a new client.

This is slightly interesting because it's the only catalog that now has
a different constructor signature. Also it may be odd for users to pass
a client, but then none of their properties (which may have retry
configs) are applied.

An alternative to consider is having a `from_client` or `with_client`
staticmethod, but I did not see precedence elsewhere. I will leave it to
the maintainers to decide which they prefer and will update accordingly.
Similarly, I can do the same for dynamodb 🙂

I've also skipped the event_handler for a user-provided client because I
wouldn't want to impede on their existing events, also the param is
optional. Something to consider is using the [unique_id
arg](https://github.com/boto/botocore/blob/aaa6690e45c8dabcde3a8d2d1aa34b5fd399fba7/botocore/hooks.py#L89)
when registering an event.

> If a ``unique_id`` is given, the handler will not be registered
> if a handler with the ``unique_id`` has already been registered.


# Are these changes tested?

Basic unit test to assert the client passed is the client used.

# Are there any user-facing changes?

I believe so since this is an addition to the public API.
@kevinjqliu kevinjqliu closed this Apr 21, 2025
@kevinjqliu kevinjqliu deleted the kevinjqliu/tmp branch April 21, 2025 19:24
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.