build(deps): bump absl-py from 2.2.2 to 2.3.1 in /docs (#3167)

Bumps [absl-py](https://github.com/abseil/abseil-py) from 2.2.2 to
2.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/abseil/abseil-py/releases">absl-py's
releases</a>.</em></p>
<blockquote>
<h2>v2.3.1</h2>
<h3>Changed</h3>
<ul>
<li>(cleanup) Removed leftover code supporting Python &lt; 3.8, as well
as other
references to older Python versions.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>(typechecking) Fixed typechecking errors that appeared under mypy
release 1.16</li>
</ul>
<h2>v2.3.0</h2>
<h3>Added</h3>
<ul>
<li>(testing) Add extension point for letting <code>TestLoader</code>
specify a custom
sharding scheme.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Update package build and release process. Switched to using
<code>pyproject.toml</code>,
<code>hatch</code>, and GitHub Actions.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/abseil/abseil-py/blob/main/CHANGELOG.md">absl-py's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.1 (2025-07-03)</h2>
<h3>Changed</h3>
<ul>
<li>(cleanup) Removed leftover code supporting Python &lt; 3.8, as well
as other
references to older Python versions.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>(typechecking) Fixed typechecking errors that appeared under mypy
release 1.16</li>
</ul>
<h2>2.3.0 (2025-05-26)</h2>
<h3>Added</h3>
<ul>
<li>(testing) Add extension point for letting <code>TestLoader</code>
specify a custom
sharding scheme.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Update package build and release process. Switched to using
<code>pyproject.toml</code>,
<code>hatch</code>, and GitHub Actions.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/abseil/abseil-py/commit/bdad52d90492be48ed535f7d6369c406860d547a"><code>bdad52d</code></a>
Release Abseil-py 2.3.1</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/a2d05830f40abf992f4a7e9716cf518f64ec0ce4"><code>a2d0583</code></a>
Clean up some references to older Python versions</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/55c8f4d1a83481ef4d62fb38b043844580169886"><code>55c8f4d</code></a>
Fix typechecking errors that appeared under mypy release 1.16</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/aafb0d89d21f38e9eb200eb375db3473678a98dc"><code>aafb0d8</code></a>
Add useful links to the abseil-py public files</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/2f11045b6be5acf6ff6e1ffb40898dc83c28a609"><code>2f11045</code></a>
Bump absl-py version to 2.3.0</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/4d008a9658d4de49b98c64b600b0f50526c0a6f8"><code>4d008a9</code></a>
Update CHANGELOG</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/c31c4f6cf7352fca9cd58cd26f02bcc9185badb3"><code>c31c4f6</code></a>
Automatize package release process</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/842bf097bdf34cd08181e7c426fe5df38a3ae22c"><code>842bf09</code></a>
Switch to pyproject.toml + hatchling</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/369ce9badbda914b7d3b975b7272e1194b419213"><code>369ce9b</code></a>
Fix <code>help</code> argument indentation in
<code>DEFINE_multi_enum_class</code> function documen...</li>
<li><a
href="https://github.com/abseil/abseil-py/commit/71eb53dad22e5361941c31a891ec032efd079805"><code>71eb53d</code></a>
Add extension point for letting TestLoader specify a custom sharding
scheme.</li>
<li>See full diff in <a
href="https://github.com/abseil/abseil-py/compare/v2.2.2...v2.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=absl-py&package-manager=pip&previous-version=2.2.2&new-version=2.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 5ef561f..4feab01 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,9 +1,9 @@
 # This file was autogenerated by uv via the following command:
 #    bazel run //docs:requirements.update
 
-absl-py==2.2.2 \
-    --hash=sha256:bf25b2c2eed013ca456918c453d687eab4e8309fba81ee2f4c1a6aa2494175eb \
-    --hash=sha256:e5797bc6abe45f64fd95dc06394ca3f2bedf3b5d895e9da691c9ee3397d70092
+absl-py==2.3.1 \
+    --hash=sha256:a97820526f7fbfd2ec1bce83f3f25e3a14840dac0d8e02a0b71cd75db3f77fc9 \
+    --hash=sha256:eeecf07f0c2a93ace0772c92e596ace6d3d3996c042b2128459aaae2a76de11d
     # via rules-python-docs (docs/pyproject.toml)
 alabaster==1.0.0 \
     --hash=sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e \