All non-deprecated names from typing are now re-exported by typing_extensions for convenience
Add typing_extensions.get_protocol_members and typing_extensions.is_protocol
Declare support for Python 3.12
This will be the last feature release to support Python 3.7, which recently reached its end-of-life
Full changelog of versions 4.7.0 and 4.7.0rc1:
Release 4.7.0 (June 28, 2023)
This is expected to be the last feature release supporting Python 3.7,
which reaches its end of life on June 27, 2023. Version 4.8.0 will support
only Python 3.8.0 and up.
Fix bug where a typing_extensions.Protocol class that had one or more
non-callable members would raise TypeError when issubclass()
was called against it, even if it defined a custom __subclasshook__
method. The correct behaviour -- which has now been restored -- is not to
raise TypeError in these situations if a custom __subclasshook__ method
is defined. Patch by Alex Waygood (backporting
python/cpython#105976).
Release 4.7.0rc1 (June 21, 2023)
Add typing_extensions.get_protocol_members and
typing_extensions.is_protocol (backport of CPython PR #104878).
Patch by Jelle Zijlstra.
typing_extensions now re-exports all names in the standard library's
typing module, except the deprecated ByteString. Patch by Jelle
Zijlstra.
Due to changes in the implementation of typing_extensions.Protocol,
typing.runtime_checkable can now be used on typing_extensions.Protocol
(previously, users had to use typing_extensions.runtime_checkable if they
were using typing_extensions.Protocol).
Align the implementation of TypedDict with the implementation in the
standard library on Python 3.9 and higher.
typing_extensions.TypedDict is now a function instead of a class. The
private functions _check_fails, _dict_new, and _typeddict_new
have been removed. is_typeddict now returns False when called with
TypedDict itself as the argument. Patch by Jelle Zijlstra.
Declare support for Python 3.12. Patch by Jelle Zijlstra.
Fix tests on Python 3.13, which removes support for creating
TypedDict classes through the keyword-argument syntax. Patch by
Jelle Zijlstra.
Fix a regression introduced in v4.6.3 that meant that
issubclass(object, typing_extensions.Protocol) would erroneously raise
TypeError. Patch by Alex Waygood (backporting the CPython PR
python/cpython#105239).
Allow Protocol classes to inherit from typing_extensions.Buffer or
This is expected to be the last feature release supporting Python 3.7,
which reaches its end of life on June 27, 2023. Version 4.8.0 will support
only Python 3.8.0 and up.
Fix bug where a typing_extensions.Protocol class that had one or more
non-callable members would raise TypeError when issubclass()
was called against it, even if it defined a custom __subclasshook__
method. The correct behaviour -- which has now been restored -- is not to
raise TypeError in these situations if a custom __subclasshook__ method
is defined. Patch by Alex Waygood (backporting
python/cpython#105976).
Release 4.7.0rc1 (June 21, 2023)
Add typing_extensions.get_protocol_members and
typing_extensions.is_protocol (backport of CPython PR #104878).
Patch by Jelle Zijlstra.
typing_extensions now re-exports all names in the standard library's
typing module, except the deprecated ByteString. Patch by Jelle
Zijlstra.
Due to changes in the implementation of typing_extensions.Protocol,
typing.runtime_checkable can now be used on typing_extensions.Protocol
(previously, users had to use typing_extensions.runtime_checkable if they
were using typing_extensions.Protocol).
Align the implementation of TypedDict with the implementation in the
standard library on Python 3.9 and higher.
typing_extensions.TypedDict is now a function instead of a class. The
private functions _check_fails, _dict_new, and _typeddict_new
have been removed. is_typeddict now returns False when called with
TypedDict itself as the argument. Patch by Jelle Zijlstra.
Declare support for Python 3.12. Patch by Jelle Zijlstra.
Fix tests on Python 3.13, which removes support for creating
TypedDict classes through the keyword-argument syntax. Patch by
Jelle Zijlstra.
Fix a regression introduced in v4.6.3 that meant that
issubclass(object, typing_extensions.Protocol) would erroneously raise
TypeError. Patch by Alex Waygood (backporting the CPython PR
python/cpython#105239).
Allow Protocol classes to inherit from typing_extensions.Buffer or
collections.abc.Buffer. Patch by Alex Waygood (backporting
python/cpython#104827, by Jelle Zijlstra).
Allow classes to inherit from both typing.Protocol and typing_extensions.Protocol
simultaneously. Since v4.6.0, this caused TypeError to be raised due to a
metaclass conflict. Patch by Alex Waygood.
Backport several deprecations from CPython relating to unusual ways to
create TypedDicts and NamedTuples. CPython PRs #105609 and #105780
by Alex Waygood; typing_extensions backport by Jelle Zijlstra.
Creating a NamedTuple using the functional syntax with keyword arguments
(NT = NamedTuple("NT", a=int)) is now deprecated.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on typing-extensions to permit the latest version.
Release notes
Sourced from typing-extensions's releases.
... (truncated)
Changelog
Sourced from typing-extensions's changelog.
... (truncated)
Commits
633d2e2
4.7.0 final (#255)3193f90
CHANGELOG: Mention expected end of 3.7 support (#253)e65b036
Backport CPython PR 105976 (#252)e703629
README improvements (#250)a65658f
Update CONTRIBUTING.md (#249)e69eea0
Release 4.7.0rc1 (#248)cfd49f8
Document thattyping_extensions.Protocol
andtyping.Protocol
don't always...fd1f853
Add a few more tests for interactions betweentyping.Protocol
and `typing_e...af89916
Fix edge-caseProtocol
bug on Python 3.7 (#242)bc9ce4f
Backport NamedTuple and TypedDict deprecations from Python 3.13 (#240)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)