From 6b0faa7c245d8f32c15c930799f7b85edd875f29 Mon Sep 17 00:00:00 2001 From: Xuehai Pan Date: Tue, 23 May 2023 08:19:07 +0000 Subject: [PATCH 1/2] Clarify error message for non `@runtime_checkable` decorated protocols --- src/typing_extensions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/typing_extensions.py b/src/typing_extensions.py index 78665556..e2b2dc6a 100644 --- a/src/typing_extensions.py +++ b/src/typing_extensions.py @@ -701,7 +701,7 @@ def _proto_hook(other): if _allow_reckless_class_checks(): return NotImplemented raise TypeError("Instance and class checks can only be used with" - " @runtime protocols") + " @runtime_checkable protocols") if not isinstance(other, type): # Same error as for issubclass(1, int) raise TypeError('issubclass() arg 1 must be a class') From 7aa45187617e96d6dd66274d35b01715df6afd27 Mon Sep 17 00:00:00 2001 From: Xuehai Pan Date: Tue, 23 May 2023 10:35:55 +0000 Subject: [PATCH 2/2] Add CHANGLOG entry --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74381f8a..3a8bddeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# Unreleased + +- Change deprecated `@runtime` to formal API `@runtime_checkable` in the error + message. Patch by Xuehai Pan. + # Release 4.6.0 (May 22, 2023) - `typing_extensions` is now documented at