Fix a regression introduced in v4.6.0 in the implementation of
runtime-checkable protocols. The regression meant
that doing class Foo(X, typing_extensions.Protocol), where X was a class that
had abc.ABCMeta as its metaclass, would then cause subsequent
isinstance(1, X) calls to erroneously raise TypeError. Patch by
Alex Waygood (backporting the CPython PR
python/cpython#105152).
Sync the repository's LICENSE file with that of CPython.
typing_extensions is distributed under the same license as
CPython itself.
Skip a problematic test on Python 3.12.0b1. The test fails on 3.12.0b1 due to
a bug in CPython, which will be fixed in 3.12.0b2. The
typing_extensions test suite now passes on 3.12.0b1.
Release 4.6.2 (May 25, 2023)
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
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)
Bumps typing-extensions from 4.5.0 to 4.6.3.
Changelog
Sourced from typing-extensions's changelog.
... (truncated)
Commits
c57333b
Update version to 4.6.322c0e70
Backport CPython PR 105152 (#208)b8a2ece
Third-party tests: cattrs has switched to pdm (#209)b0be88c
Add a cron job for testing third-party users of typing_extensions (#206)32887d3
Sync LICENSE with CPython (#205)252a4a4
Add more detailed versioning policy (#197)3c630b9
Backport some new protocol tests from CPython (#202)06f7360
Minor improvements to CI workflows (#201)5d51455
Skip a problematic test on CPython 3.12.0b1 (#200)e84f909
Prepare release 4.6.2 (#195)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)