Fix use of @deprecated on classes with __new__ but no __init__.
Patch by Jelle Zijlstra.
Fix regression in version 4.6.1 where comparing a generic class against a
runtime-checkable protocol using isinstance() would cause AttributeError
to be raised if using Python 3.7.
Release 4.6.1 (May 23, 2023)
Change deprecated @runtime to formal API @runtime_checkable in the error
message. Patch by Xuehai Pan.
Fix regression in 4.6.0 where attempting to define a Protocol that was
generic over a ParamSpec or a TypeVarTuple would cause TypeError to be
raised. Patch by Alex Waygood.
Add typing_extensions.Buffer, a marker class for buffer types, as proposed
by PEP 688. Equivalent to collections.abc.Buffer in Python 3.12. Patch by
Jelle Zijlstra.
Backport two CPython PRs fixing various issues with typing.Literal:
python/cpython#23294 and
python/cpython#23383. Both CPython PRs were
originally by Yurii Karabas, and both were backported to Python >=3.9.1, but
no earlier. Patch by Alex Waygood.
A side effect of one of the changes is that equality comparisons of Literal
objects will now raise a TypeError if one of the Literal objects being
compared has a mutable parameter. (Using mutable parameters with Literal is
not supported by PEP 586 or by any major static type checkers.)
Literal is now reimplemented on all Python versions <= 3.10.0. The
typing_extensions version does not suffer from the bug that was fixed in
python/cpython#29334. (The CPython bugfix was
backported to CPython 3.10.1 and 3.9.8, but no earlier.)
Backport CPython PR 26067
(originally by Yurii Karabas), ensuring that isinstance() calls on
protocols raise TypeError when the protocol is not decorated with
@runtime_checkable. Patch by Alex Waygood.
Backport several significant performance improvements to runtime-checkable
protocols that have been made in Python 3.12 (see
python/cpython#74690 for details). Patch by Alex
Waygood.
A side effect of one of the performance improvements is that the members of
a runtime-checkable protocol are now considered “frozen” at runtime as soon
as the class has been created. Monkey-patching attributes onto a
runtime-checkable protocol will still work, but will have no impact on
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.
Changelog
Sourced from typing-extensions's changelog.
... (truncated)
Commits
e84f909
Prepare release 4.6.2 (#195)2912585
Fix@deprecated
on classes with only new (#193)e7fe63f
Add guidance on robust runtime use (#189)57aae62
Fix isinstance check for Generic classes on Python 3.7 (#188)f62fa3f
Prepare release 4.6.1 (#186)88a7f68
HaveProtocol
inherit fromtyping.Generic
on 3.8+ (#184)b306e56
Clarify error message for non@runtime_checkable
decorated protocols (#178)356934c
Prepare release 4.6.0 (#177)8054a29
Further simplify the implementations of the TypeVarLikes (#176)773090f
Remove module assignment for TypeVar and friends (#175)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)