tag:github.com,2008:https://github.com/python/typing_extensions/releasesRelease notes from typing_extensions2025-08-25T13:44:47Ztag:github.com,2008:Repository/494077289/4.15.02025-08-25T13:47:25Z4.15.0<p>No user-facing changes since 4.15.0rc1.</p>
<p>New features since 4.14.1:</p>
<ul>
<li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as specified<br>
in PEP 800. Patch by Jelle Zijlstra.</li>
<li>Add <code>typing_extensions.type_repr</code>, a backport of<br>
<a href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr" rel="nofollow"><code>annotationlib.type_repr</code></a>,<br>
introduced in Python 3.14 (CPython PR <a href="https://github.com/python/cpython/pull/124551" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/124551/hovercard">#124551</a>,<br>
originally by Jelle Zijlstra). Patch by Semyon Moroz.</li>
<li>Fix behavior of type params in <code>typing_extensions.evaluate_forward_ref</code>. Backport of<br>
CPython PR <a href="https://github.com/python/cpython/pull/137227" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/137227/hovercard">#137227</a> by Jelle Zijlstra.</li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.15.0rc12025-08-18T14:26:21Z4.15.0rc1<ul>
<li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as specified<br>
in PEP 800. Patch by Jelle Zijlstra.</li>
<li>Add <code>typing_extensions.type_repr</code>, a backport of<br>
<a href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr" rel="nofollow"><code>annotationlib.type_repr</code></a>,<br>
introduced in Python 3.14 (CPython PR <a href="https://github.com/python/cpython/pull/124551" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/124551/hovercard">#124551</a>,<br>
originally by Jelle Zijlstra). Patch by Semyon Moroz.</li>
<li>Fix behavior of type params in <code>typing_extensions.evaluate_forward_ref</code>. Backport of<br>
CPython PR <a href="https://github.com/python/cpython/pull/137227" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/137227/hovercard">#137227</a> by Jelle Zijlstra.</li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.14.12025-07-04T13:27:08Z4.14.1<h1>Release 4.14.1 (July 4, 2025)</h1>
<ul>
<li>Fix usage of <code>typing_extensions.TypedDict</code> nested inside other types<br>
(e.g., <code>typing.Type[typing_extensions.TypedDict]</code>). This is not allowed by the<br>
type system but worked on older versions, so we maintain support.</li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.14.02025-06-02T14:51:00Z4.14.0<p>This release adds several new features, including experimental support for inline typed dictionaries (<a href="https://peps.python.org/pep-0764/" rel="nofollow">PEP 764</a>) and sentinels (<a href="https://peps.python.org/pep-0661/" rel="nofollow">PEP 661</a>), and support for changes in Python 3.14. In addition, Python 3.8 is no longer supported.</p>
<p>Changes since 4.14.0rc1:</p>
<ul>
<li>Remove <code>__or__</code> and <code>__ror__</code> methods from <code>typing_extensions.Sentinel</code><br>
on Python versions <3.10. PEP 604 was introduced in Python 3.10, and<br>
<code>typing_extensions</code> does not generally attempt to backport <a class="issue-link js-issue-link notranslate" rel="noopener noreferrer nofollow" href="https://peps.python.org/604">PEP-604</a> methods<br>
to prior versions.</li>
<li>Further update <code>typing_extensions.evaluate_forward_ref</code> with changes in Python 3.14.</li>
</ul>
<p>Changes included in 4.14.0rc1:</p>
<ul>
<li>Drop support for Python 3.8 (including PyPy-3.8). Patch by <a href="https://github.com/Viicos">Victorien Plot</a>.</li>
<li>Do not attempt to re-export names that have been removed from <code>typing</code>,<br>
anticipating the removal of <code>typing.no_type_check_decorator</code> in Python 3.15.<br>
Patch by Jelle Zijlstra.</li>
<li>Update <code>typing_extensions.Format</code>, <code>typing_extensions.evaluate_forward_ref</code>, and<br>
<code>typing_extensions.TypedDict</code> to align<br>
with changes in Python 3.14. Patches by Jelle Zijlstra.</li>
<li>Fix tests for Python 3.14 and 3.15. Patches by Jelle Zijlstra.</li>
</ul>
<p>New features:</p>
<ul>
<li>Add support for inline typed dictionaries (<a href="https://peps.python.org/pep-0764/" rel="nofollow">PEP 764</a>).<br>
Patch by <a href="https://github.com/Viicos">Victorien Plot</a>.</li>
<li>Add <code>typing_extensions.Reader</code> and <code>typing_extensions.Writer</code>. Patch by<br>
Sebastian Rittau.</li>
<li>Add support for sentinels (<a href="https://peps.python.org/pep-0661/" rel="nofollow">PEP 661</a>). Patch by<br>
<a href="https://github.com/Viicos">Victorien Plot</a>.</li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.14.0rc12025-05-24T21:36:20Z4.14.0rc1<p>Major changes:</p>
<ul>
<li>Drop support for Python 3.8 (including PyPy-3.8). Patch by <a href="https://github.com/Viicos">Victorien Plot</a>.</li>
<li>Do not attempt to re-export names that have been removed from <code>typing</code>,<br>
anticipating the removal of <code>typing.no_type_check_decorator</code> in Python 3.15.<br>
Patch by Jelle Zijlstra.</li>
<li>Update <code>typing_extensions.Format</code>, <code>typing_extensions.evaluate_forward_ref</code>, and<br>
<code>typing_extensions.TypedDict</code> to align<br>
with changes in Python 3.14. Patches by Jelle Zijlstra.</li>
<li>Fix tests for Python 3.14 and 3.15. Patches by Jelle Zijlstra.</li>
</ul>
<p>New features:</p>
<ul>
<li>Add support for inline typed dictionaries (<a href="https://peps.python.org/pep-0764/" rel="nofollow">PEP 764</a>).<br>
Patch by <a href="https://github.com/Viicos">Victorien Plot</a>.</li>
<li>Add <code>typing_extensions.Reader</code> and <code>typing_extensions.Writer</code>. Patch by<br>
Sebastian Rittau.</li>
<li>Add support for sentinels (<a href="https://peps.python.org/pep-0661/" rel="nofollow">PEP 661</a>). Patch by<br>
<a href="https://github.com/Viicos">Victorien Plot</a>.</li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.13.22025-04-10T14:17:17Z4.13.2<ul>
<li>Fix <code>TypeError</code> when taking the union of <code>typing_extensions.TypeAliasType</code> and a<br>
<code>typing.TypeAliasType</code> on Python 3.12 and 3.13.<br>
Patch by <a href="https://github.com/jorenham">Joren Hammudoglu</a>.</li>
<li>Backport from CPython PR <a href="https://github.com/python/cpython/pull/132160" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/132160/hovercard">#132160</a><br>
to avoid having user arguments shadowed in generated <code>__new__</code> by<br>
<code>@typing_extensions.deprecated</code>.<br>
Patch by <a href="https://github.com/Viicos">Victorien Plot</a>.</li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.13.12025-04-03T16:07:43Z4.13.1<p>This is a bugfix release fixing two edge cases that appear on old bugfix releases of CPython.</p>
<p>Bugfixes:</p>
<ul>
<li>Fix regression in 4.13.0 on Python 3.10.2 causing a <code>TypeError</code> when using <code>Concatenate</code>.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix <code>TypeError</code> when using <code>evaluate_forward_ref</code> on Python 3.10.1-2 and 3.9.8-10.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.13.02025-03-26T03:46:24Z4.13.0<p>New features:</p>
<ul>
<li>Add <code>typing_extensions.TypeForm</code> from PEP 747. Patch by<br>
Jelle Zijlstra.</li>
<li>Add <code>typing_extensions.get_annotations</code>, a backport of<br>
<code>inspect.get_annotations</code> that adds features specified<br>
by PEP 649. Patches by Jelle Zijlstra and Alex Waygood.</li>
<li>Backport <code>evaluate_forward_ref</code> from CPython PR<br>
<a href="https://github.com/python/cpython/pull/119891" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/119891/hovercard">#119891</a> to evaluate <code>ForwardRef</code>s.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>, backporting a CPython PR by Jelle Zijlstra.</li>
</ul>
<p>Bugfixes and changed features:</p>
<ul>
<li>Update PEP 728 implementation to a newer version of the PEP. Patch by Jelle Zijlstra.</li>
<li>Copy the coroutine status of functions and methods wrapped<br>
with <code>@typing_extensions.deprecated</code>. Patch by Sebastian Rittau.</li>
<li>Fix bug where <code>TypeAliasType</code> instances could be subscripted even<br>
where they were not generic. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix bug where a subscripted <code>TypeAliasType</code> instance did not have all<br>
attributes of the original <code>TypeAliasType</code> instance on older Python versions.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a> and Alex Waygood.</li>
<li>Fix bug where subscripted <code>TypeAliasType</code> instances (and some other<br>
subscripted objects) had wrong parameters if they were directly<br>
subscripted with an <code>Unpack</code> object.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Backport to Python 3.10 the ability to substitute <code>...</code> in generic <code>Callable</code><br>
aliases that have a <code>Concatenate</code> special form as their argument.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Extended the <code>Concatenate</code> backport for Python 3.8-3.10 to now accept<br>
<code>Ellipsis</code> as an argument. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix backport of <code>get_type_hints</code> to reflect Python 3.11+ behavior which does not add<br>
<code>Union[..., NoneType]</code> to annotations that have a <code>None</code> default value anymore.<br>
This fixes wrapping of <code>Annotated</code> in an unwanted <code>Optional</code> in such cases.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix error in subscription of <code>Unpack</code> aliases causing nested Unpacks<br>
to not be resolved correctly. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Backport CPython PR <a href="https://github.com/python/cpython/pull/124795" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/124795/hovercard">#124795</a>:<br>
fix <code>TypeAliasType</code> not raising an error on non-tuple inputs for <code>type_params</code>.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix that lists and <code>...</code> could not be used for parameter expressions for <code>TypeAliasType</code><br>
instances before Python 3.11.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix error on Python 3.10 when using <code>typing.Concatenate</code> and<br>
<code>typing_extensions.Concatenate</code> together. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Backport of CPython PR <a href="https://github.com/python/cpython/pull/109544" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/109544/hovercard">#109544</a><br>
to reflect Python 3.13+ behavior: A value assigned to <code>__total__</code> in the class body of a<br>
<code>TypedDict</code> will be overwritten by the <code>total</code> argument of the <code>TypedDict</code> constructor.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>, backporting a CPython PR by Jelle Zijlstra.</li>
<li><code>isinstance(typing_extensions.Unpack[...], TypeVar)</code> now evaluates to <code>False</code> on Python 3.11<br>
and newer, but remains <code>True</code> on versions before 3.11.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
</ul>hauntsaninjatag:github.com,2008:Repository/494077289/4.13.0rc12025-03-18T18:02:11Z4.13.0rc1<p>New features:</p>
<ul>
<li>Add <code>typing_extensions.TypeForm</code> from PEP 747. Patch by<br>
Jelle Zijlstra.</li>
<li>Add <code>typing_extensions.get_annotations</code>, a backport of<br>
<code>inspect.get_annotations</code> that adds features specified<br>
by PEP 649. Patches by Jelle Zijlstra and Alex Waygood.</li>
<li>Backport <code>evaluate_forward_ref</code> from CPython PR<br>
<a href="https://github.com/python/cpython/pull/119891" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/119891/hovercard">#119891</a> to evaluate <code>ForwardRef</code>s.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>, backporting a CPython PR by Jelle Zijlstra.</li>
</ul>
<p>Bugfixes and changed features:</p>
<ul>
<li>Update PEP 728 implementation to a newer version of the PEP. Patch by Jelle Zijlstra.</li>
<li>Copy the coroutine status of functions and methods wrapped<br>
with <code>@typing_extensions.deprecated</code>. Patch by Sebastian Rittau.</li>
<li>Fix bug where <code>TypeAliasType</code> instances could be subscripted even<br>
where they were not generic. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix bug where a subscripted <code>TypeAliasType</code> instance did not have all<br>
attributes of the original <code>TypeAliasType</code> instance on older Python versions.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a> and Alex Waygood.</li>
<li>Fix bug where subscripted <code>TypeAliasType</code> instances (and some other<br>
subscripted objects) had wrong parameters if they were directly<br>
subscripted with an <code>Unpack</code> object.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Backport to Python 3.10 the ability to substitute <code>...</code> in generic <code>Callable</code><br>
aliases that have a <code>Concatenate</code> special form as their argument.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Extended the <code>Concatenate</code> backport for Python 3.8-3.10 to now accept<br>
<code>Ellipsis</code> as an argument. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix backport of <code>get_type_hints</code> to reflect Python 3.11+ behavior which does not add<br>
<code>Union[..., NoneType]</code> to annotations that have a <code>None</code> default value anymore.<br>
This fixes wrapping of <code>Annotated</code> in an unwanted <code>Optional</code> in such cases.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix error in subscription of <code>Unpack</code> aliases causing nested Unpacks<br>
to not be resolved correctly. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Backport CPython PR <a href="https://github.com/python/cpython/pull/124795" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/124795/hovercard">#124795</a>:<br>
fix <code>TypeAliasType</code> not raising an error on non-tuple inputs for <code>type_params</code>.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix that lists and ... could not be used for parameter expressions for <code>TypeAliasType</code><br>
instances before Python 3.11.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Fix error on Python 3.10 when using <code>typing.Concatenate</code> and<br>
<code>typing_extensions.Concatenate</code> together. Patch by <a href="https://github.com/Daraan">Daraan</a>.</li>
<li>Backport of CPython PR <a href="https://github.com/python/cpython/pull/109544" data-hovercard-type="pull_request" data-hovercard-url="/python/cpython/pull/109544/hovercard">#109544</a><br>
to reflect Python 3.13+ behavior: A value assigned to <code>__total__</code> in the class body of a<br>
<code>TypedDict</code> will be overwritten by the <code>total</code> argument of the <code>TypedDict</code> constructor.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a>, backporting a CPython PR by Jelle Zijlstra.</li>
<li>Fix for Python 3.11 that now <code>isinstance(typing_extensions.Unpack[...], TypeVar)</code><br>
evaluates to <code>False</code>, however still <code>True</code> for <3.11.<br>
Patch by <a href="https://github.com/Daraan">Daraan</a></li>
</ul>JelleZijlstratag:github.com,2008:Repository/494077289/4.12.22024-06-07T18:50:41Z4.12.2<ul>
<li>Fix regression in v4.12.0 where specialization of certain generics with an overridden <code>__eq__</code> method would raise errors. Patch by Jelle Zijlstra.</li>
<li>Fix tests so they pass on 3.13.0b2</li>
</ul>AlexWaygood