Skip to content

Commit c9eacc8

Browse files
[3.11] gh-95987: Fix repr of Any type subclasses (GH-96412) (#96451)
(cherry picked from commit 4217393) Co-authored-by: Nikita Sobolev <[email protected]>
1 parent 8c6ced3 commit c9eacc8

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

Lib/test/test_typing.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,12 @@ def test_any_instance_type_error(self):
109109
def test_repr(self):
110110
self.assertEqual(repr(Any), 'typing.Any')
111111

112+
class Sub(Any): pass
113+
self.assertEqual(
114+
repr(Sub),
115+
"<class 'test.test_typing.AnyTests.test_repr.<locals>.Sub'>",
116+
)
117+
112118
def test_errors(self):
113119
with self.assertRaises(TypeError):
114120
issubclass(42, Any)

Lib/typing.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,9 @@ def __instancecheck__(self, obj):
493493
return super().__instancecheck__(obj)
494494

495495
def __repr__(self):
496-
return "typing.Any"
496+
if self is Any:
497+
return "typing.Any"
498+
return super().__repr__() # respect to subclasses
497499

498500

499501
class Any(metaclass=_AnyMeta):
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix ``repr`` of ``Any`` subclasses.

0 commit comments

Comments
 (0)