Skip to content

Commit 8b647bd

Browse files
chore(deps): bump the all group with 13 updates (#747)
Bumps the all group with 13 updates: | Package | From | To | | --- | --- | --- | | [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.29.0` | `2.30.0` | | [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.134.0` | | [sse-starlette](https://github.com/sysid/sse-starlette) | `3.2.0` | `3.3.2` | | [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` | | [grpcio](https://github.com/grpc/grpc) | `1.76.0` | `1.78.0` | | [grpcio-tools](https://github.com/grpc/grpc) | `1.76.0` | `1.78.0` | | [grpcio-reflection](https://grpc.io) | `1.76.0` | `1.78.0` | | [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.53.0` | `0.54.0` | | [ruff](https://github.com/astral-sh/ruff) | `0.14.14` | `0.15.4` | | [types-protobuf](https://github.com/typeshed-internal/stub_uploader) | `6.32.1.20251210` | `6.32.1.20260221` | | [autoflake](https://github.com/PyCQA/autoflake) | `2.3.1` | `2.3.3` | | [trio](https://github.com/python-trio/trio) | `0.32.0` | `0.33.0` | | [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.41.0` | Updates `google-api-core` from 2.29.0 to 2.30.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-python/releases">google-api-core's releases</a>.</em></p> <blockquote> <h2>google-api-core: v2.30.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.29.0...google-api-core-v2.30.0">2.30.0</a> (2026-02-17)</h2> <h3>Bug Fixes</h3> <ul> <li>preserve exception cause (<a href="https://github.com/googleapis/google-cloud-python/commit/c7fc19303e0f1d7357109a73c13f875a5ced7606">c7fc19303e0f1d7357109a73c13f875a5ced7606</a>)</li> <li>require Python ≥ 3.9, protobuf ≥ 4.25.8 (<a href="https://github.com/googleapis/google-cloud-python/commit/2d1aa4288c222b247fc49ea0da03c126c051e079">2d1aa4288c222b247fc49ea0da03c126c051e079</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/google-cloud-python/commit/f0841b187388e1a63dcc258d48497b4356a60f3a"><code>f0841b1</code></a> chore: librarian release pull request: 20260217T210947Z (<a href="https://redirect.github.com/googleapis/google-cloud-python/issues/15573">#15573</a>)</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/fd22688dd38fffffeebdb8590541c79a4d5995c2"><code>fd22688</code></a> chore: librarian onboard pull request: 20260218T181744Z (<a href="https://redirect.github.com/googleapis/google-cloud-python/issues/15579">#15579</a>)</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/930dc0fd0425a221cf30b9b2e68a69726a3864ec"><code>930dc0f</code></a> docs: update the list of available APIs (<a href="https://redirect.github.com/googleapis/google-cloud-python/issues/15571">#15571</a>)</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/085a9fa86d6e4189b5dc495712457391d3a8575f"><code>085a9fa</code></a> chores: add .repo-metadata.json for google-cloud-vectorsearch (<a href="https://redirect.github.com/googleapis/google-cloud-python/issues/15574">#15574</a>)</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/4ca6f9e2f825c185d092f9879c05098659b1a871"><code>4ca6f9e</code></a> chore: librarian generate pull request: 20260218T081656Z (<a href="https://redirect.github.com/googleapis/google-cloud-python/issues/15577">#15577</a>)</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/e1b43528a2848c91a53b907474a7f787208995bf"><code>e1b4352</code></a> chore(migration): Migrate code from googleapis/python-api-core into packages/...</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/5f4fbded13aaf8e81b813297370038a259315d2c"><code>5f4fbde</code></a> chore: revert changes to scripts</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/485bd6063b5143d287f8f1e8cbc5526c4c242ac0"><code>485bd60</code></a> chore: clean up</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/452f5d8b33ebce54d229512855a34ca923040205"><code>452f5d8</code></a> chore: update librarian state.yaml</li> <li><a href="https://github.com/googleapis/google-cloud-python/commit/d8e1a9abf6a581d3bc10bef2cfba788e3bdc3baa"><code>d8e1a9a</code></a> chore: clean up</li> <li>Additional commits viewable in <a href="https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.29.0...google-api-core-v2.30.0">compare view</a></li> </ul> </details> <br /> Updates `fastapi` from 0.128.0 to 0.134.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastapi/fastapi/releases">fastapi's releases</a>.</em></p> <blockquote> <h2>0.134.0</h2> <h3>Features</h3> <ul> <li>✨ Add support for streaming JSON Lines and binary data with <code>yield</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15022">#15022</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>. <ul> <li>This also upgrades Starlette from <code>&gt;=0.40.0</code> to <code>&gt;=0.46.0</code>, as it's needed to properly unrwap and re-raise exceptions from exception groups.</li> <li>New docs: <a href="https://fastapi.tiangolo.com/tutorial/stream-json-lines/">Stream JSON Lines</a>.</li> <li>And new docs: <a href="https://fastapi.tiangolo.com/advanced/stream-data/">Stream Data</a>.</li> </ul> </li> </ul> <h3>Docs</h3> <ul> <li>📝 Update Library Agent Skill with streaming responses. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15024">#15024</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li> <li>📝 Update docs for responses and new stream with <code>yield</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15023">#15023</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li> <li>📝 Add <code>await</code> in <code>StreamingResponse</code> code example to allow cancellation. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14681">#14681</a> by <a href="https://github.com/casperdcl"><code>@​casperdcl</code></a>.</li> <li>📝 Rename <code>docs_src/websockets</code> to <code>docs_src/websockets_</code> to avoid import errors. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14979">#14979</a> by <a href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>🔨 Run tests with <code>pytest-xdist</code> and <code>pytest-cov</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14992">#14992</a> by <a href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li> </ul> <h2>0.133.1</h2> <h3>Features</h3> <ul> <li>🔧 Add FastAPI Agent Skill. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14982">#14982</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>. <ul> <li>Read more about it in <a href="https://tiangolo.com/ideas/library-agent-skills/">Library Agent Skills</a>.</li> </ul> </li> </ul> <h3>Internal</h3> <ul> <li>✅ Fix all tests are skipped on Windows. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14994">#14994</a> by <a href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li> </ul> <h2>0.133.0</h2> <h3>Upgrades</h3> <ul> <li>⬆️ Add support for Starlette 1.0.0+. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14987">#14987</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li> </ul> <h2>0.132.1</h2> <h3>Refactors</h3> <ul> <li>♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14986">#14986</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>👥 Update FastAPI People - Experts. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14972">#14972</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li> <li>👷 Allow skipping <code>benchmark</code> job in <code>test</code> workflow. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14974">#14974</a> by <a href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li> </ul> <h2>0.132.0</h2> <h3>Breaking Changes</h3> <ul> <li>🔒️ Add <code>strict_content_type</code> checking for JSON requests. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14978">#14978</a> by <a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>. <ul> <li>Now FastAPI checks, by default, that JSON requests have a <code>Content-Type</code> header with a valid JSON value, like <code>application/json</code>, and rejects requests that don't.</li> <li>If the clients for your app don't send a valid <code>Content-Type</code> header you can disable this with <code>strict_content_type=False</code>.</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fastapi/fastapi/commit/48d58ae3b6ef4ded5a4794618c00345667256d98"><code>48d58ae</code></a> 📝 Update release notes</li> <li><a href="https://github.com/fastapi/fastapi/commit/d3b1d6cbd4d2429334bc07b735851d02c8a25631"><code>d3b1d6c</code></a> 📝 Update release notes</li> <li><a href="https://github.com/fastapi/fastapi/commit/d98eb74da906e39e8fc9573b33fe5eefb1ea07e4"><code>d98eb74</code></a> 🔖 Release version 0.134.0</li> <li><a href="https://github.com/fastapi/fastapi/commit/d33ad3f90fe193688d054782c056cab8cee2e003"><code>d33ad3f</code></a> 📝 Update release notes</li> <li><a href="https://github.com/fastapi/fastapi/commit/b7fefb147e42004a0a2ecfa1b44c581cd7b4edd8"><code>b7fefb1</code></a> 📝 Update release notes</li> <li><a href="https://github.com/fastapi/fastapi/commit/c01dc8b03c069650aaae702ef96eb648cd05dc38"><code>c01dc8b</code></a> 📝 Update Library Agent Skill with streaming responses (<a href="https://redirect.github.com/fastapi/fastapi/issues/15024">#15024</a>)</li> <li><a href="https://github.com/fastapi/fastapi/commit/8344d078e2fa39365ec71d6d9ad4ddd9c583c8f1"><code>8344d07</code></a> 📝 Update release notes</li> <li><a href="https://github.com/fastapi/fastapi/commit/1377052c6cc5eff92a6bcbb54c0fcb66e14e06d7"><code>1377052</code></a> 📝 Update docs for responses and new stream with <code>yield</code> (<a href="https://redirect.github.com/fastapi/fastapi/issues/15023">#15023</a>)</li> <li><a href="https://github.com/fastapi/fastapi/commit/c0836dc1b7f4ba91e9563c8c4ccd0ebe655bc914"><code>c0836dc</code></a> 📝 Update release notes</li> <li><a href="https://github.com/fastapi/fastapi/commit/c3f54a0794d8acadb0059c55edbb314678253921"><code>c3f54a0</code></a> 📝 Add <code>await</code> in <code>StreamingResponse</code> code example to allow cancellation (<a href="https://redirect.github.com/fastapi/fastapi/issues/14681">#14681</a>)</li> <li>Additional commits viewable in <a href="https://github.com/fastapi/fastapi/compare/0.128.0...0.134.0">compare view</a></li> </ul> </details> <br /> Updates `sse-starlette` from 3.2.0 to 3.3.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sysid/sse-starlette/releases">sse-starlette's releases</a>.</em></p> <blockquote> <h2>v3.3.2</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): bump cryptography from 46.0.3 to 46.0.5 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/sysid/sse-starlette/pull/166">sysid/sse-starlette#166</a></li> <li>chore(deps): bump filelock from 3.20.1 to 3.20.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/sysid/sse-starlette/pull/170">sysid/sse-starlette#170</a></li> <li>Consolidate examples into 7 self-contained scripts by <a href="https://github.com/sysid"><code>@​sysid</code></a> in <a href="https://redirect.github.com/sysid/sse-starlette/pull/171">sysid/sse-starlette#171</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sysid/sse-starlette/compare/v3.3.1...v3.3.2">https://github.com/sysid/sse-starlette/compare/v3.3.1...v3.3.2</a></p> <h2>v3.3.1</h2> <h2>What's Changed</h2> <ul> <li>chore: modernize project infrastructure by <a href="https://github.com/sysid"><code>@​sysid</code></a> in <a href="https://redirect.github.com/sysid/sse-starlette/pull/169">sysid/sse-starlette#169</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sysid/sse-starlette/compare/v3.3.0...v3.3.1">https://github.com/sysid/sse-starlette/compare/v3.3.0...v3.3.1</a></p> <h2>v3.3.0</h2> <h2>What's Changed</h2> <ul> <li>feat: expose shutdown event for cooperative generator shutdown (<a href="https://redirect.github.com/sysid/sse-starlette/issues/167">#167</a>)</li> </ul> <ul> <li>chore(deps): bump actions/checkout from 4 to 6 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/sysid/sse-starlette/pull/155">sysid/sse-starlette#155</a></li> <li>chore(deps): bump virtualenv from 20.35.4 to 20.36.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/sysid/sse-starlette/pull/162">sysid/sse-starlette#162</a></li> <li>chore(deps): bump urllib3 from 2.6.2 to 2.6.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/sysid/sse-starlette/pull/161">sysid/sse-starlette#161</a></li> <li>chore(deps): bump cbor2 from 5.7.1 to 5.8.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/sysid/sse-starlette/pull/163">sysid/sse-starlette#163</a></li> <li>chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/sysid/sse-starlette/pull/160">sysid/sse-starlette#160</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sysid/sse-starlette/compare/v3.2.0...v3.3.0">https://github.com/sysid/sse-starlette/compare/v3.2.0...v3.3.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sysid/sse-starlette/commit/de9ed5d65813dde81dd541f0fcf066d743e4756d"><code>de9ed5d</code></a> Bump version to 3.3.2</li> <li><a href="https://github.com/sysid/sse-starlette/commit/cc74bc86df8ef0763b7d39639cec7fc4196838b4"><code>cc74bc8</code></a> Merge pull request <a href="https://redirect.github.com/sysid/sse-starlette/issues/171">#171</a> from sysid/001-cleanup-examples</li> <li><a href="https://github.com/sysid/sse-starlette/commit/0a3d0084b29f86efbf0703491c1e1f9d790c33fb"><code>0a3d008</code></a> docs: consolidate examples into 7 self-contained scripts with PEP 723 metadata</li> <li><a href="https://github.com/sysid/sse-starlette/commit/dc238b5c878b598be463d69732aa1169c3e14b94"><code>dc238b5</code></a> Merge pull request <a href="https://redirect.github.com/sysid/sse-starlette/issues/170">#170</a> from sysid/dependabot/uv/filelock-3.20.3</li> <li><a href="https://github.com/sysid/sse-starlette/commit/d9338992a427f1eaac9809ef4dd6b4b63ac32e28"><code>d933899</code></a> Merge pull request <a href="https://redirect.github.com/sysid/sse-starlette/issues/166">#166</a> from sysid/dependabot/uv/cryptography-46.0.5</li> <li><a href="https://github.com/sysid/sse-starlette/commit/ff8bae4b825304290eba5e07bda005ce4cf4ebba"><code>ff8bae4</code></a> fix: correct version to 3.3.1 (PR <a href="https://redirect.github.com/sysid/sse-starlette/issues/168">#168</a> merge reverted 3.3.0 to 3.2.0)</li> <li><a href="https://github.com/sysid/sse-starlette/commit/5ed4e200dfed59443240361ad9ac62e6ec4e0f93"><code>5ed4e20</code></a> chore(deps): bump filelock from 3.20.1 to 3.20.3</li> <li><a href="https://github.com/sysid/sse-starlette/commit/ed680ded16daa59e91c4179b8cbe1563cd64fa92"><code>ed680de</code></a> Bump version to 3.2.1</li> <li><a href="https://github.com/sysid/sse-starlette/commit/610af8e92bbf1ecb7335cfc9254d91183501fe74"><code>610af8e</code></a> Merge pull request <a href="https://redirect.github.com/sysid/sse-starlette/issues/169">#169</a> from sysid/chore/maintenance</li> <li><a href="https://github.com/sysid/sse-starlette/commit/a46cce7cf4be11322b94de13e13ce82a369b70f8"><code>a46cce7</code></a> chore: modernize project infrastructure</li> <li>Additional commits viewable in <a href="https://github.com/sysid/sse-starlette/compare/v3.2.0...v3.3.2">compare view</a></li> </ul> </details> <br /> Updates `starlette` from 0.50.0 to 0.52.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Kludex/starlette/releases">starlette's releases</a>.</em></p> <blockquote> <h2>Version 0.52.1</h2> <h2>What's Changed</h2> <ul> <li>Only use <code>typing_extensions</code> in older Python versions by <a href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a href="https://redirect.github.com/Kludex/starlette/pull/3109">Kludex/starlette#3109</a></li> </ul> <hr /> <p><strong>Full Changelog</strong>: <a href="https://github.com/Kludex/starlette/compare/0.52.0...0.52.1">https://github.com/Kludex/starlette/compare/0.52.0...0.52.1</a></p> <h2>Version 0.52.0</h2> <p>In this release, <code>State</code> can be accessed using dictionary-style syntax for improved type safety (<a href="https://redirect.github.com/Kludex/starlette/pull/3036">#3036</a>).</p> <pre lang="python"><code>from collections.abc import AsyncIterator from contextlib import asynccontextmanager from typing import TypedDict <p>import httpx</p> <p>from starlette.applications import Starlette from starlette.requests import Request</p> <p>class State(TypedDict): http_client: httpx.AsyncClient</p> <p><a href="https://github.com/asynccontextmanager"><code>@​asynccontextmanager</code></a> async def lifespan(app: Starlette) -&gt; AsyncIterator[State]: async with httpx.AsyncClient() as client: yield {&quot;http_client&quot;: client}</p> <p>async def homepage(request: Request[State]): client = request.state[&quot;http_client&quot;] # If you run the below line with mypy or pyright, it will reveal the correct type. reveal_type(client) # Revealed type is 'httpx.AsyncClient' </code></pre></p> <p>See <a href="https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state">Accessing State</a> for more details.</p> <hr /> <p><strong>Full Changelog</strong>: <a href="https://github.com/Kludex/starlette/compare/0.51.0...0.52.0">https://github.com/Kludex/starlette/compare/0.51.0...0.52.0</a></p> <h2>Version 0.51.0</h2> <h2>Added</h2> <ul> <li>Add <code>allow_private_network</code> in <code>CORSMiddleware</code> <a href="https://redirect.github.com/Kludex/starlette/pull/3065">#3065</a>.</li> </ul> <h2>Changed</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Kludex/starlette/blob/main/docs/release-notes.md">starlette's changelog</a>.</em></p> <blockquote> <h2>0.52.1 (January 18, 2026)</h2> <h4>Fixed</h4> <ul> <li>Only use <code>typing_extensions</code> in older Python versions <a href="https://redirect.github.com/Kludex/starlette/pull/3109">#3109</a>.</li> </ul> <h2>0.52.0 (January 18, 2026)</h2> <p>In this release, <code>State</code> can be accessed using dictionary-style syntax for improved type safety (<a href="https://redirect.github.com/Kludex/starlette/pull/3036">#3036</a>).</p> <pre lang="python"><code>from collections.abc import AsyncIterator from contextlib import asynccontextmanager from typing import TypedDict <p>import httpx</p> <p>from starlette.applications import Starlette from starlette.requests import Request</p> <p>class State(TypedDict): http_client: httpx.AsyncClient</p> <p><a href="https://github.com/asynccontextmanager"><code>@​asynccontextmanager</code></a> async def lifespan(app: Starlette) -&gt; AsyncIterator[State]: async with httpx.AsyncClient() as client: yield {&quot;http_client&quot;: client}</p> <p>async def homepage(request: Request[State]): client = request.state[&quot;http_client&quot;] # If you run the below line with mypy or pyright, it will reveal the correct type. reveal_type(client) # Revealed type is 'httpx.AsyncClient' </code></pre></p> <p>See <a href="https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state">Accessing State</a> for more details.</p> <h2>0.51.0 (January 10, 2026)</h2> <h4>Added</h4> <ul> <li>Add <code>allow_private_network</code> in <code>CORSMiddleware</code> <a href="https://redirect.github.com/Kludex/starlette/pull/3065">#3065</a>.</li> </ul> <h4>Changed</h4> <ul> <li>Increase warning stacklevel on <code>DeprecationWarning</code> for wsgi module <a href="https://redirect.github.com/Kludex/starlette/pull/3082">#3082</a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Kludex/starlette/commit/e5b8a5d200504a2608bed11fe6f66b1d20b9ae2c"><code>e5b8a5d</code></a> Version 0.52.1 (<a href="https://redirect.github.com/Kludex/starlette/issues/3110">#3110</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/d02eadecb5409e9553922081ac123757849335e7"><code>d02eade</code></a> Only use <code>typing_extensions</code> in older Python versions (<a href="https://redirect.github.com/Kludex/starlette/issues/3109">#3109</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/f490b42f5fa0808ead53115a45d907c6d8e16a47"><code>f490b42</code></a> Version 0.52.0 (<a href="https://redirect.github.com/Kludex/starlette/issues/3107">#3107</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/d8c7cf9aca95b31c7a70473d03c26bc8ce33cd74"><code>d8c7cf9</code></a> Turn <code>State</code> into a <code>Mapping</code> (<a href="https://redirect.github.com/Kludex/starlette/issues/3036">#3036</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/cfce146611f7cc2b14c524b26d7e1d6cf0ddcd9f"><code>cfce146</code></a> chore: bump coverage (<a href="https://redirect.github.com/Kludex/starlette/issues/3103">#3103</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/9138e5597285c6120821a6ad862880d479f329f3"><code>9138e55</code></a> fix: setup github pages for deployment (<a href="https://redirect.github.com/Kludex/starlette/issues/3102">#3102</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/aff6df756b231c42ca088788db4bf4b193f7cc5b"><code>aff6df7</code></a> docs: add environment for github docs (<a href="https://redirect.github.com/Kludex/starlette/issues/3101">#3101</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/434bab94749b8522b08bbef3eff5fb742629d4fd"><code>434bab9</code></a> docS: fix gh pages deploy (<a href="https://redirect.github.com/Kludex/starlette/issues/3100">#3100</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/03426be1d41fc3963cd2dab5f10992e137eaf5f4"><code>03426be</code></a> docs: replace mkdocs by zensical (<a href="https://redirect.github.com/Kludex/starlette/issues/3098">#3098</a>)</li> <li><a href="https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e"><code>df2ee22</code></a> Version 0.51.0 (<a href="https://redirect.github.com/Kludex/starlette/issues/3097">#3097</a>)</li> <li>Additional commits viewable in <a href="https://github.com/Kludex/starlette/compare/0.50.0...0.52.1">compare view</a></li> </ul> </details> <br /> Updates `grpcio` from 1.76.0 to 1.78.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc/releases">grpcio's releases</a>.</em></p> <blockquote> <h2>Release v1.78.0</h2> <p>This is release 1.78.0 (<a href="https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md">gutsy</a>) of gRPC Core.</p> <p>For gRPC documentation, see <a href="https://grpc.io/">grpc.io</a>. For previous releases, see <a href="https://github.com/grpc/grpc/releases">Releases</a>.</p> <p>This release contains refinements, improvements, and bug fixes, with highlights listed below.</p> <h2>C++</h2> <ul> <li>adding address_sorting dep in naming test build. (<a href="https://redirect.github.com/grpc/grpc/pull/41045">#41045</a>)</li> </ul> <h2>Objective-C</h2> <ul> <li>[Backport][v1.78.x][Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (<a href="https://redirect.github.com/grpc/grpc/pull/41358">#41358</a>)</li> </ul> <h2>Python</h2> <ul> <li>[python] aio: fix race condition causing <code>asyncio.run()</code> to hang forever during the shutdown process. (<a href="https://redirect.github.com/grpc/grpc/pull/40989">#40989</a>)</li> <li>[Python] Migrate to pyproject.toml build system from setup.py builds. (<a href="https://redirect.github.com/grpc/grpc/pull/40833">#40833</a>)</li> <li>[Python] Log error details when ExecuteBatchError occurs (at DEBUG level). (<a href="https://redirect.github.com/grpc/grpc/pull/40921">#40921</a>)</li> <li>[Python] Update setuptools min version to 77.0.1 . (<a href="https://redirect.github.com/grpc/grpc/pull/40931">#40931</a>)</li> </ul> <h2>Ruby</h2> <ul> <li>[ruby] Fix version comparison for the ruby_abi_version symbol for ruby 4 compatibility. (<a href="https://redirect.github.com/grpc/grpc/pull/41061">#41061</a>)</li> </ul> <h2>Release v1.78.0-pre2</h2> <p>This is a prerelease of gRPC Core 1.78.0 (gutsy).</p> <p>For gRPC documentation, see <a href="https://grpc.io/">grpc.io</a>. For previous releases, see <a href="https://github.com/grpc/grpc/releases">Releases</a>.</p> <p>This prerelease contains refinements, improvements, and bug fixes.</p> <h2>Release v1.78.0-pre1</h2> <p>This is a prerelease of gRPC Core 1.78.0 (gutsy).</p> <p>For gRPC documentation, see <a href="https://grpc.io/">grpc.io</a>. For previous releases, see <a href="https://github.com/grpc/grpc/releases">Releases</a>.</p> <p>This prerelease contains refinements, improvements, and bug fixes.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/grpc/grpc/commit/5e6ba94242b92e363220bc2163d55ce3554d4ecc"><code>5e6ba94</code></a> [build] add missing includes (backport to 1.78.x) (<a href="https://redirect.github.com/grpc/grpc/issues/41518">#41518</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/e364c5ca7f28da753be233b4f1966ab309c01ed3"><code>e364c5c</code></a> [PHP] ignore PHPUnit security advisory in Mac build (backport to 1.78.x) (<a href="https://redirect.github.com/grpc/grpc/issues/41">#41</a>...</li> <li><a href="https://github.com/grpc/grpc/commit/ea4d6271b2a3e94c1549317cc1e523be8f294dee"><code>ea4d627</code></a> [Release] Bump version to 1.78.0 (on v1.78.x branch) (<a href="https://redirect.github.com/grpc/grpc/issues/41489">#41489</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/9840ecd84d075e53d5a01b93e3ea7c71cb641944"><code>9840ecd</code></a> [Release] Bump version to 1.78.0-pre2 (on v1.78.x branch) (<a href="https://redirect.github.com/grpc/grpc/issues/41397">#41397</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/ea1d162a851c178dad9e8f90d7172c44228a93cb"><code>ea1d162</code></a> [Backport][v1.78.x][Fix][Compiler] Plugins fall back to the edition 2023 for ...</li> <li><a href="https://github.com/grpc/grpc/commit/818a08f379de39de0dc594ac063b0ce99875ec47"><code>818a08f</code></a> [Backport][v1.78.x][PHP] Fix runtime error with PHp8.5 alpha because zend_exc...</li> <li><a href="https://github.com/grpc/grpc/commit/f7f13023412c1a589af7558eb0b9f8f664a76431"><code>f7f1302</code></a> [Backport][v1.78.x][Fix][Build] Move xds-protos templates to the new path (<a href="https://redirect.github.com/grpc/grpc/issues/4">#4</a>...</li> <li><a href="https://github.com/grpc/grpc/commit/a38203462e4e64bc847942f08b6dffb780e5e70b"><code>a382034</code></a> [Release] Bump version to 1.78.0-pre1 (on v1.78.x branch) (<a href="https://redirect.github.com/grpc/grpc/issues/41290">#41290</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/8d22d6239230b9f3c446f0bac719e46460cbdb30"><code>8d22d62</code></a> [Release] Bump core version to 52.0.0 for upcoming release (<a href="https://redirect.github.com/grpc/grpc/issues/41288">#41288</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/ad19eab6500686839bb7ff14ec8f2a8463a32a57"><code>ad19eab</code></a> [PH2][Settings][Security]</li> <li>Additional commits viewable in <a href="https://github.com/grpc/grpc/compare/v1.76.0...v1.78.0">compare view</a></li> </ul> </details> <br /> Updates `grpcio-tools` from 1.76.0 to 1.78.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc/releases">grpcio-tools's releases</a>.</em></p> <blockquote> <h2>Release v1.78.0</h2> <p>This is release 1.78.0 (<a href="https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md">gutsy</a>) of gRPC Core.</p> <p>For gRPC documentation, see <a href="https://grpc.io/">grpc.io</a>. For previous releases, see <a href="https://github.com/grpc/grpc/releases">Releases</a>.</p> <p>This release contains refinements, improvements, and bug fixes, with highlights listed below.</p> <h2>C++</h2> <ul> <li>adding address_sorting dep in naming test build. (<a href="https://redirect.github.com/grpc/grpc/pull/41045">#41045</a>)</li> </ul> <h2>Objective-C</h2> <ul> <li>[Backport][v1.78.x][Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (<a href="https://redirect.github.com/grpc/grpc/pull/41358">#41358</a>)</li> </ul> <h2>Python</h2> <ul> <li>[python] aio: fix race condition causing <code>asyncio.run()</code> to hang forever during the shutdown process. (<a href="https://redirect.github.com/grpc/grpc/pull/40989">#40989</a>)</li> <li>[Python] Migrate to pyproject.toml build system from setup.py builds. (<a href="https://redirect.github.com/grpc/grpc/pull/40833">#40833</a>)</li> <li>[Python] Log error details when ExecuteBatchError occurs (at DEBUG level). (<a href="https://redirect.github.com/grpc/grpc/pull/40921">#40921</a>)</li> <li>[Python] Update setuptools min version to 77.0.1 . (<a href="https://redirect.github.com/grpc/grpc/pull/40931">#40931</a>)</li> </ul> <h2>Ruby</h2> <ul> <li>[ruby] Fix version comparison for the ruby_abi_version symbol for ruby 4 compatibility. (<a href="https://redirect.github.com/grpc/grpc/pull/41061">#41061</a>)</li> </ul> <h2>Release v1.78.0-pre2</h2> <p>This is a prerelease of gRPC Core 1.78.0 (gutsy).</p> <p>For gRPC documentation, see <a href="https://grpc.io/">grpc.io</a>. For previous releases, see <a href="https://github.com/grpc/grpc/releases">Releases</a>.</p> <p>This prerelease contains refinements, improvements, and bug fixes.</p> <h2>Release v1.78.0-pre1</h2> <p>This is a prerelease of gRPC Core 1.78.0 (gutsy).</p> <p>For gRPC documentation, see <a href="https://grpc.io/">grpc.io</a>. For previous releases, see <a href="https://github.com/grpc/grpc/releases">Releases</a>.</p> <p>This prerelease contains refinements, improvements, and bug fixes.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/grpc/grpc/commit/5e6ba94242b92e363220bc2163d55ce3554d4ecc"><code>5e6ba94</code></a> [build] add missing includes (backport to 1.78.x) (<a href="https://redirect.github.com/grpc/grpc/issues/41518">#41518</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/e364c5ca7f28da753be233b4f1966ab309c01ed3"><code>e364c5c</code></a> [PHP] ignore PHPUnit security advisory in Mac build (backport to 1.78.x) (<a href="https://redirect.github.com/grpc/grpc/issues/41">#41</a>...</li> <li><a href="https://github.com/grpc/grpc/commit/ea4d6271b2a3e94c1549317cc1e523be8f294dee"><code>ea4d627</code></a> [Release] Bump version to 1.78.0 (on v1.78.x branch) (<a href="https://redirect.github.com/grpc/grpc/issues/41489">#41489</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/9840ecd84d075e53d5a01b93e3ea7c71cb641944"><code>9840ecd</code></a> [Release] Bump version to 1.78.0-pre2 (on v1.78.x branch) (<a href="https://redirect.github.com/grpc/grpc/issues/41397">#41397</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/ea1d162a851c178dad9e8f90d7172c44228a93cb"><code>ea1d162</code></a> [Backport][v1.78.x][Fix][Compiler] Plugins fall back to the edition 2023 for ...</li> <li><a href="https://github.com/grpc/grpc/commit/818a08f379de39de0dc594ac063b0ce99875ec47"><code>818a08f</code></a> [Backport][v1.78.x][PHP] Fix runtime error with PHp8.5 alpha because zend_exc...</li> <li><a href="https://github.com/grpc/grpc/commit/f7f13023412c1a589af7558eb0b9f8f664a76431"><code>f7f1302</code></a> [Backport][v1.78.x][Fix][Build] Move xds-protos templates to the new path (<a href="https://redirect.github.com/grpc/grpc/issues/4">#4</a>...</li> <li><a href="https://github.com/grpc/grpc/commit/a38203462e4e64bc847942f08b6dffb780e5e70b"><code>a382034</code></a> [Release] Bump version to 1.78.0-pre1 (on v1.78.x branch) (<a href="https://redirect.github.com/grpc/grpc/issues/41290">#41290</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/8d22d6239230b9f3c446f0bac719e46460cbdb30"><code>8d22d62</code></a> [Release] Bump core version to 52.0.0 for upcoming release (<a href="https://redirect.github.com/grpc/grpc/issues/41288">#41288</a>)</li> <li><a href="https://github.com/grpc/grpc/commit/ad19eab6500686839bb7ff14ec8f2a8463a32a57"><code>ad19eab</code></a> [PH2][Settings][Security]</li> <li>Additional commits viewable in <a href="https://github.com/grpc/grpc/compare/v1.76.0...v1.78.0">compare view</a></li> </ul> </details> <br /> Updates `grpcio-reflection` from 1.76.0 to 1.78.0 Updates `datamodel-code-generator` from 0.53.0 to 0.54.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/koxudaxi/datamodel-code-generator/releases">datamodel-code-generator's releases</a>.</em></p> <blockquote> <h2>0.54.0</h2> <h2>Breaking Changes</h2> <h3>Code Generation Changes</h3> <ul> <li>Enum member names from oneOf/anyOf const constructs now use <code>title</code> field when provided - Previously, when creating enums from <code>oneOf</code>/<code>anyOf</code> constructs with <code>const</code> values, the <code>title</code> field was incorrectly ignored and enum member names were generated using the pattern <code>{type}_{value}</code> (e.g., <code>integer_200</code>). Now, when a <code>title</code> is specified, it is correctly used as the enum member name (e.g., <code>OK</code> instead of <code>integer_200</code>). Users who have code depending on the previously generated enum member names will need to update their references. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975">#2975</a>) Before: <pre lang="python"><code>class StatusCode(IntEnum): integer_200 = 200 integer_404 = 404 integer_500 = 500 </code></pre> After: <pre lang="python"><code>class StatusCode(IntEnum): OK = 200 Not_Found = 404 Server_Error = 500 </code></pre> </li> <li>Field names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., <code>int: int</code>, <code>list: list[str]</code>, <code>dict: dict[str, Any]</code>), the field is now renamed with a trailing underscore (e.g., <code>int_</code>) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., <code>int: int | None = None</code>), which could cause code that shadows Python builtins. After this change, the same field becomes <code>int_: int | None = Field(None, alias='int')</code>. This affects fields named: <code>int</code>, <code>float</code>, <code>bool</code>, <code>str</code>, <code>bytes</code>, <code>list</code>, <code>dict</code>, <code>set</code>, <code>frozenset</code>, <code>tuple</code>, and other Python builtins when their type annotation uses the matching builtin type. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968">#2968</a>)</li> <li>$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a <code>$ref</code> was combined with non-standard fields like <code>markdownDescription</code>, <code>if</code>, <code>then</code>, <code>else</code>, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., <code>UserWithExtra</code> alongside <code>User</code>). Now, only whitelisted schema-affecting extras (currently just <code>const</code>) trigger merging. This means: <ul> <li>Fewer merged/duplicate models will be generated</li> <li>References are preserved directly instead of being expanded</li> <li>Field types may change from inline merged types to direct references Example schema:</li> </ul> <pre lang="yaml"><code>properties: user: $ref: &quot;#/definitions/User&quot; nullable: true markdownDescription: &quot;A user object&quot; </code></pre> Before: Could generate a merged <code>UserWithMarkdownDescription</code> model After: Directly uses <code>User | None</code> reference (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993">#2993</a>)</li> <li>Enum member names no longer get underscore suffix with <code>--capitalise-enum-members</code> - Previously, enum values like <code>replace</code>, <code>count</code>, <code>index</code> would generate <code>REPLACE_</code>, <code>COUNT_</code>, <code>INDEX_</code> when using <code>--capitalise-enum-members</code>. Now they correctly generate <code>REPLACE</code>, <code>COUNT</code>, <code>INDEX</code>. The underscore suffix is only added when <code>--use-subclass-enum</code> is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing <code>MyEnum.REPLACE_</code> in code) will need to update to use the new names without trailing underscores. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999">#2999</a>)</li> <li>Fields using <code>$ref</code> with inline keywords now include merged metadata - When a schema property uses <code>$ref</code> alongside additional keywords (e.g., <code>const</code>, <code>enum</code>, <code>readOnly</code>, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like <code>type: Type</code> may now become <code>type: Type = Field(..., description='Type of this object.', title='type')</code> when the referenced schema includes those attributes. This also affects <code>additionalProperties</code> and OpenAPI parameter schemas. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997">#2997</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>Refactor ruff check+format to use sequential subprocess calls by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967">koxudaxi/datamodel-code-generator#2967</a></li> <li>Fix title ignored when creating enums from merging <code>allOf</code>'s or <code>anyOf</code>'s objects by <a href="https://github.com/ilovelinux"><code>@​ilovelinux</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975">koxudaxi/datamodel-code-generator#2975</a></li> <li>Fix aliased imports not applied to base classes and non-matching fields by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981">koxudaxi/datamodel-code-generator#2981</a></li> <li>Fix handling of falsy default values for enums in set-default-enum-member option by <a href="https://github.com/kkinugasa"><code>@​kkinugasa</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977">koxudaxi/datamodel-code-generator#2977</a></li> <li>Fix use_union_operator with Python builtin type field names by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968">koxudaxi/datamodel-code-generator#2968</a></li> <li>Support $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982">koxudaxi/datamodel-code-generator#2982</a></li> <li>Address review feedback for recursive/dynamic ref support by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985">koxudaxi/datamodel-code-generator#2985</a></li> <li>Fix RecursionError in _merge_ref_with_schema for circular $ref by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983">koxudaxi/datamodel-code-generator#2983</a></li> <li>Fix missing Field import with multiple aliases on required fields by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992">koxudaxi/datamodel-code-generator#2992</a></li> <li>Fix patternProperties/propertyNames key constraints lost with field_constraints by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994">koxudaxi/datamodel-code-generator#2994</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md">datamodel-code-generator's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0">0.54.0</a> - 2026-02-14</h2> <h2>Breaking Changes</h2> <h3>Code Generation Changes</h3> <ul> <li>Enum member names from oneOf/anyOf const constructs now use <code>title</code> field when provided - Previously, when creating enums from <code>oneOf</code>/<code>anyOf</code> constructs with <code>const</code> values, the <code>title</code> field was incorrectly ignored and enum member names were generated using the pattern <code>{type}_{value}</code> (e.g., <code>integer_200</code>). Now, when a <code>title</code> is specified, it is correctly used as the enum member name (e.g., <code>OK</code> instead of <code>integer_200</code>). Users who have code depending on the previously generated enum member names will need to update their references. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975">#2975</a>) Before: <pre lang="python"><code>class StatusCode(IntEnum): integer_200 = 200 integer_404 = 404 integer_500 = 500 </code></pre> After: <pre lang="python"><code>class StatusCode(IntEnum): OK = 200 Not_Found = 404 Server_Error = 500 </code></pre> </li> <li>Field names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., <code>int: int</code>, <code>list: list[str]</code>, <code>dict: dict[str, Any]</code>), the field is now renamed with a trailing underscore (e.g., <code>int_</code>) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., <code>int: int | None = None</code>), which could cause code that shadows Python builtins. After this change, the same field becomes <code>int_: int | None = Field(None, alias='int')</code>. This affects fields named: <code>int</code>, <code>float</code>, <code>bool</code>, <code>str</code>, <code>bytes</code>, <code>list</code>, <code>dict</code>, <code>set</code>, <code>frozenset</code>, <code>tuple</code>, and other Python builtins when their type annotation uses the matching builtin type. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968">#2968</a>)</li> <li>$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a <code>$ref</code> was combined with non-standard fields like <code>markdownDescription</code>, <code>if</code>, <code>then</code>, <code>else</code>, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., <code>UserWithExtra</code> alongside <code>User</code>). Now, only whitelisted schema-affecting extras (currently just <code>const</code>) trigger merging. This means: <ul> <li>Fewer merged/duplicate models will be generated</li> <li>References are preserved directly instead of being expanded</li> <li>Field types may change from inline merged types to direct references Example schema:</li> </ul> <pre lang="yaml"><code>properties: user: $ref: &quot;#/definitions/User&quot; nullable: true markdownDescription: &quot;A user object&quot; </code></pre> Before: Could generate a merged <code>UserWithMarkdownDescription</code> model After: Directly uses <code>User | None</code> reference (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993">#2993</a>)</li> <li>Enum member names no longer get underscore suffix with <code>--capitalise-enum-members</code> - Previously, enum values like <code>replace</code>, <code>count</code>, <code>index</code> would generate <code>REPLACE_</code>, <code>COUNT_</code>, <code>INDEX_</code> when using <code>--capitalise-enum-members</code>. Now they correctly generate <code>REPLACE</code>, <code>COUNT</code>, <code>INDEX</code>. The underscore suffix is only added when <code>--use-subclass-enum</code> is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing <code>MyEnum.REPLACE_</code> in code) will need to update to use the new names without trailing underscores. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999">#2999</a>)</li> <li>Fields using <code>$ref</code> with inline keywords now include merged metadata - When a schema property uses <code>$ref</code> alongside additional keywords (e.g., <code>const</code>, <code>enum</code>, <code>readOnly</code>, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like <code>type: Type</code> may now become <code>type: Type = Field(..., description='Type of this object.', title='type')</code> when the referenced schema includes those attributes. This also affects <code>additionalProperties</code> and OpenAPI parameter schemas. (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997">#2997</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>Refactor ruff check+format to use sequential subprocess calls by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967">koxudaxi/datamodel-code-generator#2967</a></li> <li>Fix title ignored when creating enums from merging <code>allOf</code>'s or <code>anyOf</code>'s objects by <a href="https://github.com/ilovelinux"><code>@​ilovelinux</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975">koxudaxi/datamodel-code-generator#2975</a></li> <li>Fix aliased imports not applied to base classes and non-matching fields by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981">koxudaxi/datamodel-code-generator#2981</a></li> <li>Fix handling of falsy default values for enums in set-default-enum-member option by <a href="https://github.com/kkinugasa"><code>@​kkinugasa</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977">koxudaxi/datamodel-code-generator#2977</a></li> <li>Fix use_union_operator with Python builtin type field names by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968">koxudaxi/datamodel-code-generator#2968</a></li> <li>Support $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982">koxudaxi/datamodel-code-generator#2982</a></li> <li>Address review feedback for recursive/dynamic ref support by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985">koxudaxi/datamodel-code-generator#2985</a></li> <li>Fix RecursionError in _merge_ref_with_schema for circular $ref by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983">koxudaxi/datamodel-code-generator#2983</a></li> <li>Fix missing Field import with multiple aliases on required fields by <a href="https://github.com/koxudaxi"><code>@​koxudaxi</code></a> in <a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992">koxudaxi/datamodel-code-generator#2992</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e"><code>2ea6244</code></a> Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624"><code>34b7d29</code></a> fix codespeed python version (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000">#3000</a>)</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2"><code>f3ef9c6</code></a> Fix merged result in parse_item not passed back to parse_object_fields (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997">#2997</a>)</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7"><code>5011903</code></a> Fix extra underscore on enum members like replace with --capitalise-enum-memb...</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2"><code>907a1a8</code></a> Fix exact imports with module/class name collision (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998">#2998</a>)</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01"><code>2b659f0</code></a> Fix missing | None for nullable enum literals in TypedDict (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991">#2991</a>)</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f"><code>992af20</code></a> Fix type loss when $ref is used with non-standard metadata fields (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993">#2993</a>)</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102"><code>0f1bc0f</code></a> Fix patternProperties/propertyNames key constraints lost with field_constrain...</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49"><code>24b576e</code></a> Fix missing Field import with multiple aliases on required fields (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992">#2992</a>)</li> <li><a href="https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f"><code>b58970a</code></a> Fix RecursionError in _merge_ref_with_schema for circular $ref (<a href="https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983">#2983</a>)</li> <li>Additional commits viewable in <a href="https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.14.14 to 0.15.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.4</h2> <h2>Release Notes</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@​stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@​thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@​GeObts</code></a></li> </ul> <h2>Install ruff 0.15.4</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.ps1 | iex&quot; </code></pre> <h2>Download ruff 0.15.4</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td> <td>PPC64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.4</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@​stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@​thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@​GeObts</code></a></li> </ul> <h2>0.15.3</h2> <p>Released on 2026-02-26.</p> <h3>Preview features</h3> <ul> <li> <p>Drop explicit support for <code>.qmd</code> file extension (<a href="https://redirect.github.com/astral-sh/ruff/pull/23572">#23572</a>)</p> <p>This can now be enabled instead by setting the <a href="https://docs.astral.sh/ruff/settings/#extension"><code>extension</code></a> option:</p> <pre lang="toml"><code># ruff.toml extension = { qmd = &quot;markdown&quot; } <h1>pyproject.toml</h1> <p>[tool.ruff] extension = { qmd = &quot;markdown&quot; } </code></pre></p> </li> <li> <p>Include configured extensions in file discovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/23400">#23400</a>)</p> </li> <li> <p>[<code>flake8-bandit</code>] Allow suspicious imports in <code>TYPE_CHECKING</code> blocks (<code>S401</code>-<code>S415</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23441">#23441</a>)</p> </li> <li> <p>[<code>flake8-bugbear</code>] Allow <code>B901</code> in pytest hook wrappers (<a href="https://redirect.github.com/astral-sh/ruff/pull/21931">#21931</a>)</p> </li> <li> <p>[<code>flake8-import-conventions</code>] Add missing conventions from upstream (<code>ICN001</code>, <code>ICN002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21373">#21373</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/f14edd8661e2803254f89265548c7487f47a09f6"><code>f14edd8</code></a> Bump 0.15.4 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23595">#23595</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/fd09d370076ab585444fd39f0fee79bf29280b68"><code>fd09d37</code></a> Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/issues/23588">#23588</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/81d655fadce087b792e524ed1964e9bcc31b73cd"><code>81d655f</code></a> [<code>pyflakes</code>] suppress false positive in <code>F821</code> for names used before <code>del</code> in...</li> <li><a href="https://github.com/astral-sh/ruff/commit/625b4f5a672d1baaa6f25e0999ca428f3f2522f1"><code>625b4f5</code></a> [ruff] docs: Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/issues/23591">#23591</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/60facfa0bc02689637e25237f0df5abfc2f27054"><code>60facfa</code></a> one word typo fix in a <code>while_loop.md</code> test case (<a href="https://redirect.github.com/astral-sh/ruff/issues/23589">#23589</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/fbb9fa75cc1915973a739da0ec469094176bfdc6"><code>fbb9fa7</code></a> docs: fix incorrect import-heading example (<a href="https://redirect.github.com/astral-sh/ruff/issues/23568">#23568</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/5bc49a941279c9100ff834edae1cb63053aeec93"><code>5bc49a9</code></a> Increase the ruleset size to 16 bits (<a href="https://redirect.github.com/astral-sh/ruff/issues/23586">#23586</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/a62ba8c6e2bac0b899d90fd30a1b26c07aac44bb"><code>a62ba8c</code></a> [ty] Fix overloaded callable assignability for unary Callable targets (<a href="https://redirect.github.com/astral-sh/ruff/issues/23277">#23277</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e5f2f36a3f49b45fd7506d42b12c495c2517e936"><code>e5f2f36</code></a> Bump 0.15.3 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23585">#23585</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/0e19fc9a61477e71abc4eb76f05a129b6b9ab873"><code>0e19fc9</code></a> [ty] defer calculating conjunctions in narrowing constraints (<a href="https://redirect.github.com/astral-sh/ruff/issues/23552">#23552</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.14.14...0.15.4">compare view</a></li> </ul> </details> <br /> Updates `types-protobuf` from 6.32.1.20251210 to 6.32.1.20260221 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/typeshed-internal/stub_uploader/commits">compare view</a></li> </ul> </details> <br /> Updates `autoflake` from 2.3.1 to 2.3.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/PyCQA/autoflake/releases">autoflake's releases</a>.</em></p> <blockquote> <h2>v2.3.3</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>pyproject: fix packaging by <a href="https://github.com/fsouza"><code>@​fsouza</code></a> in <a href="https://redirect.github.com/PyCQA/autoflake/pull/342">PyCQA/autoflake#342</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/PyCQA/autoflake/compare/v2.3.2...v2.3.3">https://github.com/PyCQA/autoflake/compare/v2.3.2...v2.3.3</a></p> <h2>v2.3.2</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Update README.md by <a href="https://github.com/arkadybag"><code>@​arkadybag</code></a> in <a href="https://redirect.github.com/PyCQA/autoflake/pull/310">PyCQA/autoflake#310</a></li> <li>Drop Python 3.8 by <a href="https://github.com/fsouza"><code>@​fsouza</code></a> in <a href="https://redirect.github.com/PyCQA/autoflake/pull/312">PyCQA/autoflake#312</a></li> <li>pre-commit-config: <code>--py39-plus</code> by <a href="https://github.com/fsouza"><code>@​fsouza</code></a> in <a href="https://redirect.github.com/PyCQA/autoflake/pull/313">PyCQA/autoflake#313</a></li> <li>github/workflows: add Python 3.13 to the test matrix by <a href="https://github.com/fsouza"><code>@​fsouza</code></a> in <a href="https://redirect.github.com/PyCQA/autoflake/pull/316">PyCQA/autoflake#316</a></li> <li>Fix TypeError in <code>is_literal_or_name</code> on unhashable set literals by <a href="https://github.com/Fridayai700"><code>@​Fridayai700</code></a> in <a href="https://redirect.github.com/PyCQA/autoflake/pull/339">PyCQA/autoflake#339</a></li> <li>Fix IndexError in <code>extract_package_name</code> on malformed import lines by <a href="https://github.com/Fridayai700"><code>@​Fridayai700</code></a> in <a href="https://redirect.github.com/PyCQA/autoflake/pull/338">PyCQA/autof…
1 parent 2325ad2 commit 8b647bd

1 file changed

Lines changed: 158 additions & 158 deletions

File tree

0 commit comments

Comments
 (0)