From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Mon, 24 May 2021 23:51:08 +0000 (+0800) Subject: bpo-38908: [docs] Add changes to 3.10 whatsnew and fix some minor inaccuracies in... X-Git-Tag: v3.11.0a1~1044 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8450e8a81f6d54f45e1fc5c13a03878c9978750d;p=thirdparty%2FPython%2Fcpython.git bpo-38908: [docs] Add changes to 3.10 whatsnew and fix some minor inaccuracies in news (GH-26096) The fix only applies to ``isinstance``. ``issubclass`` isn't affected (because it was always working to begin with). So I also fixed the news to reflect that. --- diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 6443b78c8fa4..a006eb4d6c53 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 b72936c205f6..18e3dd4066c4 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.