tag:github.com,2008:https://github.com/python/typing_extensions/releases Release notes from typing_extensions 2025-08-25T13:44:47Z tag:github.com,2008:Repository/494077289/4.15.0 2025-08-25T13:47:25Z 4.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> JelleZijlstra tag:github.com,2008:Repository/494077289/4.15.0rc1 2025-08-18T14:26:21Z 4.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> JelleZijlstra tag:github.com,2008:Repository/494077289/4.14.1 2025-07-04T13:27:08Z 4.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> JelleZijlstra tag:github.com,2008:Repository/494077289/4.14.0 2025-06-02T14:51:00Z 4.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 &lt;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> JelleZijlstra tag:github.com,2008:Repository/494077289/4.14.0rc1 2025-05-24T21:36:20Z 4.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> JelleZijlstra tag:github.com,2008:Repository/494077289/4.13.2 2025-04-10T14:17:17Z 4.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> JelleZijlstra tag:github.com,2008:Repository/494077289/4.13.1 2025-04-03T16:07:43Z 4.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> JelleZijlstra tag:github.com,2008:Repository/494077289/4.13.0 2025-03-26T03:46:24Z 4.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> hauntsaninja tag:github.com,2008:Repository/494077289/4.13.0rc1 2025-03-18T18:02:11Z 4.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 &lt;3.11.<br> Patch by <a href="https://github.com/Daraan">Daraan</a></li> </ul> JelleZijlstra tag:github.com,2008:Repository/494077289/4.12.2 2024-06-07T18:50:41Z 4.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