Fix support for TypedDict, NamedTuple and is_protocol on PyPy-3.7 and
PyPy-3.8. Patch by Alex Waygood. Note that PyPy-3.7 and PyPy-3.8 are unsupported
by the PyPy project. The next feature release of typing-extensions will
drop support for PyPy-3.7 and may also drop support for PyPy-3.8.
4.7.0
This is a feature release. Major changes include:
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
Fix support for TypedDict, NamedTuple and is_protocol on PyPy-3.7 and
PyPy-3.8. Patch by Alex Waygood. Note that PyPy-3.7 and PyPy-3.8 are unsupported
by the PyPy project. The next feature release of typing-extensions will
drop support for PyPy-3.7 and may also drop support for PyPy-3.8.
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
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
You can trigger a rebase of this PR 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)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps typing-extensions from 4.3.0 to 4.7.1.
Release notes
Sourced from typing-extensions's releases.
... (truncated)
Changelog
Sourced from typing-extensions's changelog.
... (truncated)
Commits
b518f6a
Prepare release 4.7.1 (#264)dcdc53f
Restore compatibility with PyPy <3.9 (#262)bc9bc06
Run some mypyc tests in the third-party workflow (#260)fc5243b
Run tests on more pypy versions in CI (#259)b3ddcb6
Stop running third-party tests on 3.7 (#257)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)You can trigger a rebase of this PR 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)