Bumps the minor-and-patch group with 4 updates in the /libs/model-profiles directory: [typing-extensions](https://github.com/python/typing_extensions), [syrupy](https://github.com/syrupy-project/syrupy), [ruff](https://github.com/astral-sh/ruff) and [mypy](https://github.com/python/mypy). Bumps the minor-and-patch group with 4 updates in the /libs/standard-tests directory: [typing-extensions](https://github.com/python/typing_extensions), [syrupy](https://github.com/syrupy-project/syrupy), [ruff](https://github.com/astral-sh/ruff) and [mypy](https://github.com/python/mypy). Bumps the minor-and-patch group with 5 updates in the /libs/text-splitters directory: | Package | From | To | | --- | --- | --- | | [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.20` | `0.16.0` | | [ty](https://github.com/astral-sh/ty) | `0.0.56` | `0.0.64` | | [transformers](https://github.com/huggingface/transformers) | `5.12.1` | `5.14.1` | | [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.6.0` | `5.6.1` | Updates `typing-extensions` from 4.15.0 to 4.16.0 <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.16.0</h2> <p>No changes since 4.16.0rc2.</p> <p>Changes since 4.15.0:</p> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <h2>4.16.0rc2</h2> <p>Changes since 4.16.0rc1:</p> <ul> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <p>Changes since 4.15.0:</p> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> </ul> <h2>4.16.0rc1</h2> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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.16.0 (July 2, 2025)</h1> <p>No user-facing changes since 4.16.0rc2.</p> <h1>Release 4.16.0rc2 (June 25, 2026)</h1> <ul> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <h1>Release 4.16.0rc1 (June 24, 2026)</h1> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/typing_extensions/commit/f29cd28d8ed7642cafb1d18daf5aa41be6a5c0aa"><code>f29cd28</code></a> Prepare relase 4.16.0 (<a href="https://redirect.github.com/python/typing_extensions/issues/774">#774</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/43174610ec0c407ce05ad750077c4e62b9192b2b"><code>4317461</code></a> Bump version to 4.16.0rc2.dev (<a href="https://redirect.github.com/python/typing_extensions/issues/772">#772</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/4f71098e5be84798d36416bbca0e776223ee40f9"><code>4f71098</code></a> Prepare release 4.16.0rc2 (<a href="https://redirect.github.com/python/typing_extensions/issues/771">#771</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/37ed08a11f3b7c05234f8963ab97e3ebdbdc16a2"><code>37ed08a</code></a> Remove use of <code>asyncio.coroutines.iscoroutinefunction()</code> (<a href="https://redirect.github.com/python/typing_extensions/issues/769">#769</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/8dcc5594cbe5a4e348245fea6ce160ce93ed6601"><code>8dcc559</code></a> Improve <code>TypedDict</code> documentation (<a href="https://redirect.github.com/python/typing_extensions/issues/770">#770</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/224f8d50551d26f0d603093596c3a47a7302a46f"><code>224f8d5</code></a> Post-release followups for 3.16.0rc1 (<a href="https://redirect.github.com/python/typing_extensions/issues/767">#767</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/777de3eb5f4562e2054d1d7ce707f098b1f4fd2f"><code>777de3e</code></a> Prepare release 4.16.0rc1 (<a href="https://redirect.github.com/python/typing_extensions/issues/766">#766</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/890be90f1545e7d5fa904dfa3154d5f03c96782c"><code>890be90</code></a> Type variable tuple variance (<a href="https://redirect.github.com/python/typing_extensions/issues/741">#741</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/0e0545866d78458b668dc52d2edc411f6e39540d"><code>0e05458</code></a> Pin SQLAlchemy third-party tests to pytest==9.0.3 (<a href="https://redirect.github.com/python/typing_extensions/issues/765">#765</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/d2777468c274202ec290103b34313e50cf040229"><code>d277746</code></a> docs: add version compatibility table (<a href="https://redirect.github.com/python/typing_extensions/issues/733">#733</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/typing_extensions/compare/4.15.0...4.16.0">compare view</a></li> </ul> </details> <br /> Updates `syrupy` from 5.3.4 to 5.5.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/releases">syrupy's releases</a>.</em></p> <blockquote> <h2>v5.5.3</h2> <h2>What's Changed</h2> <p>This release has no functional changes. It just fixes an issue where the release tag pointed to the previous commit instead of the commit with the updated pyproject.toml (see <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1144">syrupy-project/syrupy#1144</a>).</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3">https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3</a></p> <h2>v5.5.2</h2> <h2>What's Changed</h2> <ul> <li>fix: Fix detecting <code>pytest-xdist</code> when loaded via <code>PYTEST_PLUGINS</code> by <a href="https://github.com/mgorny"><code>@mgorny</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mgorny"><code>@mgorny</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2">https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2</a></p> <h2>v5.5.1</h2> <h2>What's Changed</h2> <ul> <li>fix: Defer registering <code>pytest-xdist</code> hook <code>pytest_testnodedown</code> to avoid "unknown hook" error by <a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1">https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1</a></p> <h2>v5.5.0</h2> <h2>What's Changed</h2> <ul> <li>feat: detect unused snapshots under pytest-xdist by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1132">syrupy-project/syrupy#1132</a></li> </ul> <blockquote> <p><strong>NOTE</strong>: Test suites using pytest-xdist that previously passed due to incomplete snapshot support may now fail if unused snapshots are detected. You can use <code>--snapshot-warn-unused</code> to downgrade unused snapshot detection from an error to a warning though it's not recommended.</p> </blockquote> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0">https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0</a></p> <h2>v5.4.0</h2> <h2>What's Changed</h2> <ul> <li>feat: add --snapshot-no-cleanup to keep unused snapshots on update by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1126">syrupy-project/syrupy#1126</a></li> <li>fix: honor boolean operators in -k snapshot selection by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1127">syrupy-project/syrupy#1127</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.4...v5.4.0">https://github.com/syrupy-project/syrupy/compare/v5.3.4...v5.4.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md">syrupy's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.3">v5.5.3</a> (2026-07-11)</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): update astral-sh/setup-uv action to v8.3.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1143">syrupy-project/syrupy#1143</a></li> <li>chore(deps): update astral-sh/setup-uv action to v8.3.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1145">syrupy-project/syrupy#1145</a></li> <li>chore(deps): update dependency hypothesis to v6.156.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1147">syrupy-project/syrupy#1147</a></li> <li>chore(deps): update dependency mypy to v2.2.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1148">syrupy-project/syrupy#1148</a></li> <li>chore(deps): update dependency hypothesis to v6.156.3 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1150">syrupy-project/syrupy#1150</a></li> <li>chore: closes <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1144">#1144</a> by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1146">syrupy-project/syrupy#1146</a></li> <li>chore(deps): update astral-sh/setup-uv action to v8.3.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1149">syrupy-project/syrupy#1149</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3">https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.2">v5.5.2</a> (2026-07-08)</h2> <h2>What's Changed</h2> <ul> <li>fix: Fix detecting <code>pytest-xdist</code> when loaded via <code>PYTEST_PLUGINS</code> by <a href="https://github.com/mgorny"><code>@mgorny</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mgorny"><code>@mgorny</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2">https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.1">v5.5.1</a> (2026-07-06)</h2> <h2>What's Changed</h2> <ul> <li>fix: Defer registering <code>pytest-xdist</code> hook <code>pytest_testnodedown</code> to avoid "unknown hook" error by <a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1">https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.0">v5.5.0</a> (2026-07-06)</h2> <h2>What's Changed</h2> <ul> <li>feat: detect unused snapshots under pytest-xdist by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1132">syrupy-project/syrupy#1132</a></li> </ul> <blockquote> <p><strong>NOTE</strong>: Test suites using pytest-xdist that previously passed due to incomplete snapshot support may now fail if unused snapshots are detected. You can use <code>--snapshot-warn-unused</code> to downgrade unused snapshot detection from an error to a warning though it's not recommended.</p> </blockquote> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0">https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.4.0">v5.4.0</a> (2026-07-01)</h2> <h2>What's Changed</h2> <ul> <li>feat: add --snapshot-no-cleanup to keep unused snapshots on update by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1126">syrupy-project/syrupy#1126</a></li> <li>fix: honor boolean operators in -k snapshot selection by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1127">syrupy-project/syrupy#1127</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/syrupy-project/syrupy/commit/3cd347306cf44db076d2e4f50f7dfd325d9b5a92"><code>3cd3473</code></a> chore(release): 5.5.3 [skip ci]</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/fed7e9f69f4dd14b39360e626236c868147588d5"><code>fed7e9f</code></a> chore(deps): update astral-sh/setup-uv action to v8.3.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1149">#1149</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/443fc11bf67ce588753cd4518ef056463cfe651b"><code>443fc11</code></a> chore: closes <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1144">#1144</a> (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1146">#1146</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/56bf157ce4135bde78ecc49cfa9532ffa41659e8"><code>56bf157</code></a> chore(deps): update dependency hypothesis to v6.156.3 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1150">#1150</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/f9c725a5653677bfcafb53645c9a078f3aa79d87"><code>f9c725a</code></a> chore(deps): update dependency mypy to v2.2.0 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1148">#1148</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/3af2ccf2feeadb3a0d4e3f418d22ad3395725c80"><code>3af2ccf</code></a> chore(deps): update dependency hypothesis to v6.156.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1147">#1147</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/feaa22ca4c211dfcdd8d0d048112531fd6cb344c"><code>feaa22c</code></a> chore(deps): update astral-sh/setup-uv action to v8.3.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1145">#1145</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/5c59701e411922a464497398f5df25d76f2f9dcd"><code>5c59701</code></a> chore(deps): update astral-sh/setup-uv action to v8.3.0 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1143">#1143</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/1cbf7167ff114e3012b1c139661777c1a0b692ee"><code>1cbf716</code></a> chore(release): 5.5.2 [skip ci]</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/4f83490d2ebf4ae22aeba6d9946979640151aa34"><code>4f83490</code></a> fix: Fix detecting <code>pytest-xdist</code> when loaded via <code>PYTEST_PLUGINS</code> (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1142">#1142</a>)</li> <li>Additional commits viewable in <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.4...v5.5.3">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.20 to 0.16.0 <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.16.0</h2> <h2>Release Notes</h2> <p>Released on 2026-07-23.</p> <p>Check out the <a href="https://astral.sh/blog/ruff-v0.16.0">blog post</a> for a migration guide and overview of the changes!</p> <h3>Breaking changes</h3> <ul> <li> <p>Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for more details and the new <a href="https://docs.astral.sh/ruff/default-rules/">Default Rules</a> page for a full listing of the enabled rules. Note that this is primarily an expansion, but 18 of the more opinionated pycodestyle (<code>E</code>) and pyflakes (<code>F</code>) rules have been removed from the default set: <code>E401</code>, <code>E402</code>, <code>E701</code>, <code>E702</code>, <code>E703</code>, <code>E711</code>, <code>E712</code>, <code>E713</code>, <code>E714</code>, <code>E721</code>, <code>E731</code>, <code>E741</code>, <code>E742</code>, <code>E743</code>, <code>F403</code>, <code>F405</code>, <code>F406</code>, and <code>F722</code>.</p> </li> <li> <p>Ruff can now format Python code blocks in Markdown files and will do this by default. See the <a href="https://docs.astral.sh/ruff/formatter/#markdown-code-formatting">documentation</a> for more details.</p> </li> <li> <p>Ruff now supports <code>ruff: ignore</code> comments at the ends of lines, like <code>noqa</code> comments, or on the line preceding a diagnostic. For example, these both suppress an <a href="https://docs.astral.sh/ruff/rules/unused-import/"><code>unused-import</code></a> (<code>F401</code>) diagnostic:</p> <pre lang="py"><code>import math # ruff: ignore[F401] <h1>ruff: ignore[F401]</h1> <p>import os </code></pre></p> </li> <li> <p>Fixes are now shown in <code>check</code> and <code>format --check</code> output:</p> <pre lang="console"><code>❯ ruff format --check . unformatted: File would be reformatted --> try.md:1:1 | 1 | ```python - import math 2 + import math 3 | ``` | <p>1 file would be reformatted </code></pre></p> <p>This example also shows off the Markdown formatting.</p> </li> <li> <p><code>format --check</code> now supports the same output formats as the linter, including the <code>github</code> and <code>gitlab</code> outputs for rendering annotations in CI:</p> <pre lang="console"><code>❯ ruff format --check --output-format github . ::error title=ruff (unformatted),file=try.md,line=2,col=8,endLine=2,endColumn=10::try.md:2:8: unformatted: File would be reformatted </code></pre> <p>See the CLI help or <a href="https://docs.astral.sh/ruff/settings/#output-format">documentation</a> for the full list of supported formats.</p> </li> <li> <p>The <code>filename</code>, <code>location</code>, <code>end_location</code>, <code>fix.edits[].location</code>, and <code>fix.edits[].end_location</code> fields in the JSON output format may now be <code>null</code> rather than defaulting to the empty string and row 1, column 1, respectively.</p> </li> </ul> <!-- 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.16.0</h2> <p>Released on 2026-07-23.</p> <p>Check out the <a href="https://astral.sh/blog/ruff-v0.16.0">blog post</a> for a migration guide and overview of the changes!</p> <h3>Breaking changes</h3> <ul> <li> <p>Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for more details and the new <a href="https://docs.astral.sh/ruff/default-rules/">Default Rules</a> page for a full listing of the enabled rules. Note that this is primarily an expansion, but 18 of the more opinionated pycodestyle (<code>E</code>) and pyflakes (<code>F</code>) rules have been removed from the default set: <code>E401</code>, <code>E402</code>, <code>E701</code>, <code>E702</code>, <code>E703</code>, <code>E711</code>, <code>E712</code>, <code>E713</code>, <code>E714</code>, <code>E721</code>, <code>E731</code>, <code>E741</code>, <code>E742</code>, <code>E743</code>, <code>F403</code>, <code>F405</code>, <code>F406</code>, and <code>F722</code>.</p> </li> <li> <p>Ruff can now format Python code blocks in Markdown files and will do this by default. See the <a href="https://docs.astral.sh/ruff/formatter/#markdown-code-formatting">documentation</a> for more details.</p> </li> <li> <p>Ruff now supports <code>ruff: ignore</code> comments at the ends of lines, like <code>noqa</code> comments, or on the line preceding a diagnostic. For example, these both suppress an <a href="https://docs.astral.sh/ruff/rules/unused-import/"><code>unused-import</code></a> (<code>F401</code>) diagnostic:</p> <pre lang="py"><code>import math # ruff: ignore[F401] <h1>ruff: ignore[F401]</h1> <p>import os </code></pre></p> </li> <li> <p>Fixes are now shown in <code>check</code> and <code>format --check</code> output:</p> <pre lang="console"><code>❯ ruff format --check . unformatted: File would be reformatted --> try.md:1:1 | 1 | ```python - import math 2 + import math 3 | ``` | <p>1 file would be reformatted </code></pre></p> <p>This example also shows off the Markdown formatting.</p> </li> <li> <p><code>format --check</code> now supports the same output formats as the linter, including the <code>github</code> and <code>gitlab</code> outputs for rendering annotations in CI:</p> <pre lang="console"><code></code></pre> </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/a2635fd8f39e1d34ce8074cb486809426148f3e9"><code>a2635fd</code></a> Bump 0.16.0 (<a href="https://redirect.github.com/astral-sh/ruff/issues/27136">#27136</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/34334491652f8ceca5246d15c5c5afe0d6bc77ae"><code>3433449</code></a> [ty] Reuse full call diagnostics for implicit setter calls (<a href="https://redirect.github.com/astral-sh/ruff/issues/27115">#27115</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/22400709220931375e072ad5d7460b9fc781af78"><code>2240070</code></a> Reflect <code>ruff: ignore</code> and <code>--add-ignore</code> stabilization in documentation (<a href="https://redirect.github.com/astral-sh/ruff/issues/27">#27</a>...</li> <li><a href="https://github.com/astral-sh/ruff/commit/17ef71142c52230b923dad46ee5554140fc3fd2e"><code>17ef711</code></a> Stabilize <code>--add-ignore</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/27125">#27125</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ef912bbbe466856aa4aac10ad2a8856eb3d5aef3"><code>ef912bb</code></a> Add newly stabilized rules to defaults (<a href="https://redirect.github.com/astral-sh/ruff/issues/27055">#27055</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/b30f04023281b46f12011f13ce6b45c247e0d2e3"><code>b30f040</code></a> Stabilize new default rules (<a href="https://redirect.github.com/astral-sh/ruff/issues/27035">#27035</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/bcd70c5f10ea97ed52a785d70e7f33b83b7c697a"><code>bcd70c5</code></a> Exclude Markdown files from <code>format-dev</code> runs (<a href="https://redirect.github.com/astral-sh/ruff/issues/27052">#27052</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/87e51e2cbbaed376fc13dead40fd772361fa07c0"><code>87e51e2</code></a> Fix <code>format --check</code> spans for syntax errors (<a href="https://redirect.github.com/astral-sh/ruff/issues/27045">#27045</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/afe2723a348364ac7f4b9abd76fc67779490c05e"><code>afe2723</code></a> [<code>flake8-gettext</code>] Stabilize qualified-name and built-in binding resolution (...</li> <li><a href="https://github.com/astral-sh/ruff/commit/a9702d8928344f77a41dbe535f655a69fb04e2df"><code>a9702d8</code></a> [<code>flake8-bandit</code>] Stabilize string literal binding resolution (<code>S310</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/26944">#26944</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.20...0.16.0">compare view</a></li> </ul> </details> <br /> Updates `mypy` from 2.1.0 to 2.3.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/mypy/blob/master/CHANGELOG.md">mypy's changelog</a>.</em></p> <blockquote> <h1>Mypy Release Notes</h1> <h2>Next Release</h2> <h3>Packaging changes</h3> <ul> <li>No longer provide mypyc-accelerated wheels for macOS x86_64 [mypyc-wheels <a href="https://redirect.github.com/python/mypy/issues/119">#119</a>](<a href="https://redirect.github.com/mypyc/mypy_mypyc-wheels/pull/119">mypyc/mypy_mypyc-wheels#119</a>)</li> </ul> <h2>Mypy 2.3</h2> <p>We've just uploaded mypy 2.3.0 to the Python Package Index (<a href="https://pypi.org/project/mypy/">PyPI</a>). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:</p> <pre><code>python3 -m pip install -U mypy </code></pre> <p>You can read the full documentation for this release on <a href="http://mypy.readthedocs.io">Read the Docs</a>.</p> <h3>The Upcoming Switch to the New Native Parser</h3> <p>We are planning to enable the new native parser (<code>--native-parser</code>) by default soon. We recommend that you test the native parser in your projects and report any issues in the <a href="https://github.com/python/mypy/issues">mypy issue tracker</a>.</p> <h3>Mypyc Free-threading Memory Safety</h3> <p>Free-threaded Python builds that don't have the GIL require additional synchronization primitives or lock-free algorithms to ensure memory safety when there are race conditions (for example, when a thread reads a list item while another thread writes the same list item concurrently). This release greatly improves memory safety of free threading.</p> <p>List operations are now memory-safe on free threaded Python builds, even in the presence of race conditions. This has some performance cost. For list-heavy workloads, using <code>librt.vecs.vec</code> instead of list is often significantly faster, but note that <code>vec</code> is not (and likely won't be) fully memory safe, and the user is expected to avoid race conditions. The newly introduced <code>librt.threading.Lock</code> helps with this. Using variable-length tuples can also be more efficient than lists, since tuples are immutable and don't require expensive synchronization to ensure memory safety.</p> <p>Instance attribute access is also (mostly) memory safe now on free-threaded builds in the presence of race conditions. We are planning to fix the remaining unsafe cases in a future release.</p> <p>Full list of changes:</p> <ul> <li>Make attribute access memory safe on free-threaded builds (Jukka Lehtosalo, PR <a href="https://redirect.github.com/python/mypy/pull/21705">21705</a>)</li> <li>Fix unsafe borrowing of instance attributes with free-threading (Jukka Lehtosalo, PR <a href="https://redirect.github.com/python/mypy/pull/21688">21688</a>)</li> <li>Make list get/set item more memory safe on free-threaded builds (Jukka Lehtosalo, PR <a href="https://redirect.github.com/python/mypy/pull/21683">21683</a>)</li> <li>Don't borrow list items on free-threaded builds (Jukka Lehtosalo, PR <a href="https://redirect.github.com/python/mypy/pull/21679">21679</a>)</li> <li>Make multiple assignment from list memory-safe on free-threaded builds (Jukka Lehtosalo, PR <a href="https://redirect.github.com/python/mypy/pull/21684">21684</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/mypy/commit/8aabf8435357eaffceca7237f371e293b8168e54"><code>8aabf84</code></a> Drop +dev from version</li> <li><a href="https://github.com/python/mypy/commit/4d8ad2ab5e86c99581b73775f2c00b9b8265b589"><code>4d8ad2a</code></a> Update changelog for 2.3 release (<a href="https://redirect.github.com/python/mypy/issues/21728">#21728</a>)</li> <li><a href="https://github.com/python/mypy/commit/2c2154672040c52e481f423854d104e6cf172585"><code>2c21546</code></a> [mypyc] Update documentation of race conditions under free threading (<a href="https://redirect.github.com/python/mypy/issues/21726">#21726</a>)</li> <li><a href="https://github.com/python/mypy/commit/a9f62a3cf98a58a7a2607b7c81695802b39f5edc"><code>a9f62a3</code></a> [mypyc] Make attribute access memory safe on free-threaded builds (<a href="https://redirect.github.com/python/mypy/issues/21705">#21705</a>)</li> <li><a href="https://github.com/python/mypy/commit/0faa413ebf7c924a864ef5dabd70303d898e7766"><code>0faa413</code></a> Use <code>PYODIDE</code> environment variable for Emscripten cross-compilation detection...</li> <li><a href="https://github.com/python/mypy/commit/3d75cdb09f0928fa8b83e5ef03572ed878ac8d09"><code>3d75cdb</code></a> [mypyc] Borrow final attributes more aggressively (<a href="https://redirect.github.com/python/mypy/issues/21702">#21702</a>)</li> <li><a href="https://github.com/python/mypy/commit/24c237d85b48f618e655ffff1dc0f19089d9b599"><code>24c237d</code></a> [mypyc] Improve documentation of Final (<a href="https://redirect.github.com/python/mypy/issues/21713">#21713</a>)</li> <li><a href="https://github.com/python/mypy/commit/b5be217392b9b2771d1764066b9d600bf93ce7a8"><code>b5be217</code></a> [mypyc] Update free threading Python compatibility docs (<a href="https://redirect.github.com/python/mypy/issues/21711">#21711</a>)</li> <li><a href="https://github.com/python/mypy/commit/cbcb51add3094ec91b29cdd4c624943bf251b63f"><code>cbcb51a</code></a> Narrow for frozendict membership check (<a href="https://redirect.github.com/python/mypy/issues/21709">#21709</a>)</li> <li><a href="https://github.com/python/mypy/commit/af2bc0f3cc7f2f129f0c11294158d0c292692c3d"><code>af2bc0f</code></a> Sync typeshed (<a href="https://redirect.github.com/python/mypy/issues/21707">#21707</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/mypy/compare/v2.1.0...v2.3.0">compare view</a></li> </ul> </details> <br /> Updates `typing-extensions` from 4.15.0 to 4.16.0 <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.16.0</h2> <p>No changes since 4.16.0rc2.</p> <p>Changes since 4.15.0:</p> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <h2>4.16.0rc2</h2> <p>Changes since 4.16.0rc1:</p> <ul> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <p>Changes since 4.15.0:</p> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> </ul> <h2>4.16.0rc1</h2> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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.16.0 (July 2, 2025)</h1> <p>No user-facing changes since 4.16.0rc2.</p> <h1>Release 4.16.0rc2 (June 25, 2026)</h1> <ul> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <h1>Release 4.16.0rc1 (June 24, 2026)</h1> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/typing_extensions/commit/f29cd28d8ed7642cafb1d18daf5aa41be6a5c0aa"><code>f29cd28</code></a> Prepare relase 4.16.0 (<a href="https://redirect.github.com/python/typing_extensions/issues/774">#774</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/43174610ec0c407ce05ad750077c4e62b9192b2b"><code>4317461</code></a> Bump version to 4.16.0rc2.dev (<a href="https://redirect.github.com/python/typing_extensions/issues/772">#772</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/4f71098e5be84798d36416bbca0e776223ee40f9"><code>4f71098</code></a> Prepare release 4.16.0rc2 (<a href="https://redirect.github.com/python/typing_extensions/issues/771">#771</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/37ed08a11f3b7c05234f8963ab97e3ebdbdc16a2"><code>37ed08a</code></a> Remove use of <code>asyncio.coroutines.iscoroutinefunction()</code> (<a href="https://redirect.github.com/python/typing_extensions/issues/769">#769</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/8dcc5594cbe5a4e348245fea6ce160ce93ed6601"><code>8dcc559</code></a> Improve <code>TypedDict</code> documentation (<a href="https://redirect.github.com/python/typing_extensions/issues/770">#770</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/224f8d50551d26f0d603093596c3a47a7302a46f"><code>224f8d5</code></a> Post-release followups for 3.16.0rc1 (<a href="https://redirect.github.com/python/typing_extensions/issues/767">#767</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/777de3eb5f4562e2054d1d7ce707f098b1f4fd2f"><code>777de3e</code></a> Prepare release 4.16.0rc1 (<a href="https://redirect.github.com/python/typing_extensions/issues/766">#766</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/890be90f1545e7d5fa904dfa3154d5f03c96782c"><code>890be90</code></a> Type variable tuple variance (<a href="https://redirect.github.com/python/typing_extensions/issues/741">#741</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/0e0545866d78458b668dc52d2edc411f6e39540d"><code>0e05458</code></a> Pin SQLAlchemy third-party tests to pytest==9.0.3 (<a href="https://redirect.github.com/python/typing_extensions/issues/765">#765</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/d2777468c274202ec290103b34313e50cf040229"><code>d277746</code></a> docs: add version compatibility table (<a href="https://redirect.github.com/python/typing_extensions/issues/733">#733</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/typing_extensions/compare/4.15.0...4.16.0">compare view</a></li> </ul> </details> <br /> Updates `syrupy` from 5.3.4 to 5.5.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/releases">syrupy's releases</a>.</em></p> <blockquote> <h2>v5.5.3</h2> <h2>What's Changed</h2> <p>This release has no functional changes. It just fixes an issue where the release tag pointed to the previous commit instead of the commit with the updated pyproject.toml (see <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1144">syrupy-project/syrupy#1144</a>).</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3">https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3</a></p> <h2>v5.5.2</h2> <h2>What's Changed</h2> <ul> <li>fix: Fix detecting <code>pytest-xdist</code> when loaded via <code>PYTEST_PLUGINS</code> by <a href="https://github.com/mgorny"><code>@mgorny</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mgorny"><code>@mgorny</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2">https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2</a></p> <h2>v5.5.1</h2> <h2>What's Changed</h2> <ul> <li>fix: Defer registering <code>pytest-xdist</code> hook <code>pytest_testnodedown</code> to avoid "unknown hook" error by <a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1">https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1</a></p> <h2>v5.5.0</h2> <h2>What's Changed</h2> <ul> <li>feat: detect unused snapshots under pytest-xdist by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1132">syrupy-project/syrupy#1132</a></li> </ul> <blockquote> <p><strong>NOTE</strong>: Test suites using pytest-xdist that previously passed due to incomplete snapshot support may now fail if unused snapshots are detected. You can use <code>--snapshot-warn-unused</code> to downgrade unused snapshot detection from an error to a warning though it's not recommended.</p> </blockquote> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0">https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0</a></p> <h2>v5.4.0</h2> <h2>What's Changed</h2> <ul> <li>feat: add --snapshot-no-cleanup to keep unused snapshots on update by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1126">syrupy-project/syrupy#1126</a></li> <li>fix: honor boolean operators in -k snapshot selection by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1127">syrupy-project/syrupy#1127</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.4...v5.4.0">https://github.com/syrupy-project/syrupy/compare/v5.3.4...v5.4.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md">syrupy's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.3">v5.5.3</a> (2026-07-11)</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): update astral-sh/setup-uv action to v8.3.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1143">syrupy-project/syrupy#1143</a></li> <li>chore(deps): update astral-sh/setup-uv action to v8.3.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1145">syrupy-project/syrupy#1145</a></li> <li>chore(deps): update dependency hypothesis to v6.156.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1147">syrupy-project/syrupy#1147</a></li> <li>chore(deps): update dependency mypy to v2.2.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1148">syrupy-project/syrupy#1148</a></li> <li>chore(deps): update dependency hypothesis to v6.156.3 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1150">syrupy-project/syrupy#1150</a></li> <li>chore: closes <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1144">#1144</a> by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1146">syrupy-project/syrupy#1146</a></li> <li>chore(deps): update astral-sh/setup-uv action to v8.3.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1149">syrupy-project/syrupy#1149</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3">https://github.com/syrupy-project/syrupy/compare/v5.5.2...v5.5.3</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.2">v5.5.2</a> (2026-07-08)</h2> <h2>What's Changed</h2> <ul> <li>fix: Fix detecting <code>pytest-xdist</code> when loaded via <code>PYTEST_PLUGINS</code> by <a href="https://github.com/mgorny"><code>@mgorny</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mgorny"><code>@mgorny</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1142">syrupy-project/syrupy#1142</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2">https://github.com/syrupy-project/syrupy/compare/v5.5.1...v5.5.2</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.1">v5.5.1</a> (2026-07-06)</h2> <h2>What's Changed</h2> <ul> <li>fix: Defer registering <code>pytest-xdist</code> hook <code>pytest_testnodedown</code> to avoid "unknown hook" error by <a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1140">syrupy-project/syrupy#1140</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1">https://github.com/syrupy-project/syrupy/compare/v5.5.0...v5.5.1</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.5.0">v5.5.0</a> (2026-07-06)</h2> <h2>What's Changed</h2> <ul> <li>feat: detect unused snapshots under pytest-xdist by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1132">syrupy-project/syrupy#1132</a></li> </ul> <blockquote> <p><strong>NOTE</strong>: Test suites using pytest-xdist that previously passed due to incomplete snapshot support may now fail if unused snapshots are detected. You can use <code>--snapshot-warn-unused</code> to downgrade unused snapshot detection from an error to a warning though it's not recommended.</p> </blockquote> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0">https://github.com/syrupy-project/syrupy/compare/v5.4.0...v5.5.0</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.4.0">v5.4.0</a> (2026-07-01)</h2> <h2>What's Changed</h2> <ul> <li>feat: add --snapshot-no-cleanup to keep unused snapshots on update by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1126">syrupy-project/syrupy#1126</a></li> <li>fix: honor boolean operators in -k snapshot selection by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1127">syrupy-project/syrupy#1127</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/syrupy-project/syrupy/commit/3cd347306cf44db076d2e4f50f7dfd325d9b5a92"><code>3cd3473</code></a> chore(release): 5.5.3 [skip ci]</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/fed7e9f69f4dd14b39360e626236c868147588d5"><code>fed7e9f</code></a> chore(deps): update astral-sh/setup-uv action to v8.3.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1149">#1149</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/443fc11bf67ce588753cd4518ef056463cfe651b"><code>443fc11</code></a> chore: closes <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1144">#1144</a> (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1146">#1146</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/56bf157ce4135bde78ecc49cfa9532ffa41659e8"><code>56bf157</code></a> chore(deps): update dependency hypothesis to v6.156.3 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1150">#1150</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/f9c725a5653677bfcafb53645c9a078f3aa79d87"><code>f9c725a</code></a> chore(deps): update dependency mypy to v2.2.0 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1148">#1148</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/3af2ccf2feeadb3a0d4e3f418d22ad3395725c80"><code>3af2ccf</code></a> chore(deps): update dependency hypothesis to v6.156.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1147">#1147</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/feaa22ca4c211dfcdd8d0d048112531fd6cb344c"><code>feaa22c</code></a> chore(deps): update astral-sh/setup-uv action to v8.3.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1145">#1145</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/5c59701e411922a464497398f5df25d76f2f9dcd"><code>5c59701</code></a> chore(deps): update astral-sh/setup-uv action to v8.3.0 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1143">#1143</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/1cbf7167ff114e3012b1c139661777c1a0b692ee"><code>1cbf716</code></a> chore(release): 5.5.2 [skip ci]</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/4f83490d2ebf4ae22aeba6d9946979640151aa34"><code>4f83490</code></a> fix: Fix detecting <code>pytest-xdist</code> when loaded via <code>PYTEST_PLUGINS</code> (<a href="https://redi... _Description has been truncated_ --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mason Daugherty <mason@langchain.dev> Co-authored-by: Mason Daugherty <github@mdrxy.com>
🦜✂️ LangChain Text Splitters
Looking for the JS/TS version? Check out LangChain.js.
Quick Install
uv add langchain-text-splitters
🤔 What is this?
LangChain Text Splitters contains utilities for splitting into chunks a wide variety of text documents.
📖 Documentation
For full documentation, see the API reference.
📕 Releases & Versioning
See our Releases and Versioning policies.
We encourage pinning your version to a specific version in order to avoid breaking your CI when we publish new tests. We recommend upgrading to the latest version periodically to make sure you have the latest tests.
Not pinning your version will ensure you always have the latest tests, but it may also break your CI if we introduce tests that your integration doesn't pass.
💁 Contributing
As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
For detailed information on how to contribute, see the Contributing Guide.
Resources
- LangChain Academy — comprehensive, free courses on LangChain libraries and products, made by the LangChain team
- Code of Conduct — community guidelines and standards