Update dependency typing-extensions to v4.6.3 #224
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==4.5.0
->==4.6.3
Release Notes
python/typing_extensions
v4.6.3
Compare Source
runtime-checkable protocols. The regression meant
that doing
class Foo(X, typing_extensions.Protocol)
, whereX
was a class thathad
abc.ABCMeta
as its metaclass, would then cause subsequentisinstance(1, X)
calls to erroneously raiseTypeError
. Patch byAlex Waygood (backporting the CPythonhttps://github.com/python/cpython/pull/105152l/105152).
typing_extensions
is distributed under the same license asCPython itself.
a bug in CPython, which will be fixed in 3.12.0b2. The
typing_extensions
test suite now passes on 3.12.0b1.v4.6.2
Compare Source
@deprecated
on classes with__new__
but no__init__
.Patch by Jelle Zijlstra.
runtime-checkable protocol using
isinstance()
would causeAttributeError
to be raised if using Python 3.7.
v4.6.1
Compare Source
@runtime
to formal API@runtime_checkable
in the errormessage. Patch by Xuehai Pan.
Protocol
that wasgeneric over a
ParamSpec
or aTypeVarTuple
would causeTypeError
to beraised. Patch by Alex Waygood.
v4.6.0
Compare Source
typing_extensions
is now documented athttps://typing-extensions.readthedocs.io/en/latest/. Patch by Jelle Zijlstra.
Add
typing_extensions.Buffer
, a marker class for buffer types, as proposedby PEP 688. Equivalent to
collections.abc.Buffer
in Python 3.12. Patch byJelle Zijlstra.
Backport two CPython PRs fixing various issues with
typing.Literal
:https://github.com/python/cpython/pull/232943294 https://github.com/python/cpython/pull/23383ll/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 theLiteral
objects beingcompared has a mutable parameter. (Using mutable parameters with
Literal
isnot supported by PEP 586 or by any major static type checkers.)
Literal
is now reimplemented on all Python versions <= 3.10.0. Thetyping_extensions
version does not suffer from the bug that was fixed inhttps://github.com/python/cpython/pull/293349334. (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 onprotocols 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 (https://github.com/python/cpython/issues/74690es/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
isinstance()
checks comparing objects to the protocol. See"What's New in Python 3.12"
for more details.
isinstance()
checks against runtime-checkable protocols now useinspect.getattr_static()
rather thanhasattr()
to lookup whetherattributes exist (backporthttps://github.com/python/cpython/pull/1030343034).
This means that descriptors and
__getattr__
methods are no longerunexpectedly evaluated during
isinstance()
checks against runtime-checkableprotocols. However, it may also mean that some objects which used to be
considered instances of a runtime-checkable protocol on older versions of
typing_extensions
may no longer be considered instances of that protocolusing the new release, and vice versa. Most users are unlikely to be affected
by this change. Patch by Alex Waygood.
Backport the ability to define
__init__
methods on Protocol classes, achange made in Python 3.11 (originally implementedhttps://github.com/python/cpython/pull/31628ll/31628 by Adrian Garcia Badaracco).
Patch by Alex Waygood.
Speedup
isinstance(3, typing_extensions.SupportsIndex)
by >10x on Python<3.12. Patch by Alex Waygood.
Add
typing_extensions
versions ofSupportsInt
,SupportsFloat
,SupportsComplex
,SupportsBytes
,SupportsAbs
andSupportsRound
. Thesehave the same semantics as the versions from the
typing
module, butisinstance()
checks against thetyping_extensions
versions are >10x fasterat runtime on Python <3.12. Patch by Alex Waygood.
Add
__orig_bases__
to non-generic TypedDicts, call-based TypedDicts, andcall-based NamedTuples. Other TypedDicts and NamedTuples already had the attribute.
Patch by Adrian Garcia Badaracco.
Add
typing_extensions.get_original_bases
, a backport oftypes.get_original_bases
,introduced in Python 3.12 (CPythonhttps://github.com/python/cpython/pull/101827l/101827, originally by James
Hilton-Balfe). Patch by Alex Waygood.
This function should always produce correct results when called on classes
constructed using features from
typing_extensions
. However, it mayproduce incorrect results when called on some
NamedTuple
orTypedDict
classes that use
typing.{NamedTuple,TypedDict}
on Python <=3.11.Constructing a call-based
TypedDict
using keyword arguments for the fieldsnow causes a
DeprecationWarning
to be emitted. This matches the behaviourof
typing.TypedDict
on 3.11 and 3.12.Backport the implementation of
NewType
from 3.10 (where it is implementedas a class rather than a function). This allows user-defined
NewType
s to bepickled. Patch by Alex Waygood.
Fix tests and import on Python 3.12, where
typing.TypeVar
can no longer besubclassed. Patch by Jelle Zijlstra.
Add
typing_extensions.TypeAliasType
, a backport oftyping.TypeAliasType
from PEP 695. Patch by Jelle Zijlstra.
Backport changes to the repr of
typing.Unpack
that were made in order toimplement PEP 692 (backport of
https://github.com/python/cpython/pull/1040484048). Patch by Alex Waygood.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.