diff options
-rw-r--r-- | Doc/whatsnew/3.10.rst | 8 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2021-05-12-16-43-21.bpo-38908.nM2_rO.rst | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 6443b78..a006eb4 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -1317,6 +1317,14 @@ Add new function :func:`typing.is_typeddict` to introspect if an annotation is a :class:`typing.TypedDict`. (Contributed by Patrick Reader in :issue:`41792`) +Subclasses of ``typing.Protocol`` which only have data variables declared +will now raise a ``TypeError`` when checked with ``isinstance`` unless they +are decorated with :func:`runtime_checkable`. Previously, these checks +passed silently. Users should decorate their +subclasses with the :func:`runtime_checkable` decorator +if they want runtime protocols. +(Contributed by Yurii Karabas in :issue:`38908`) + unittest -------- diff --git a/Misc/NEWS.d/next/Library/2021-05-12-16-43-21.bpo-38908.nM2_rO.rst b/Misc/NEWS.d/next/Library/2021-05-12-16-43-21.bpo-38908.nM2_rO.rst index b72936c..18e3dd4 100644 --- a/Misc/NEWS.d/next/Library/2021-05-12-16-43-21.bpo-38908.nM2_rO.rst +++ b/Misc/NEWS.d/next/Library/2021-05-12-16-43-21.bpo-38908.nM2_rO.rst @@ -1,5 +1,5 @@ -Fix issue where :mod:`typing` protocols without the ``@runtime_checkable`` -decorator did not raise a ``TypeError`` when used with ``issubclass`` and -``isinstance``. Now, subclassses of ``typing.Protocol`` will raise a -``TypeError`` when used with with those checks. +Subclasses of ``typing.Protocol`` which only have data variables declared +will now raise a ``TypeError`` when checked with ``isinstance`` unless they +are decorated with :func:`runtime_checkable`. Previously, these checks +passed silently. Patch provided by Yurii Karabas. |