Skip to content

Commit 3a2b895

Browse files
bpo-43224: Add TypeVarTuple.__name__ (GH-31954)
I noticed that TypeVar and ParamSpec put their name in a __name__ attribute, but TypeVarTuple doesn't. Let's be consistent.
1 parent d0a91bd commit 3a2b895

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

Lib/test/test_typing.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,12 @@ def assertEndsWith(self, string, tail):
415415
if not string.endswith(tail):
416416
self.fail(f"String {string!r} does not end with {tail!r}")
417417

418+
def test_name(self):
419+
Ts = TypeVarTuple('Ts')
420+
self.assertEqual(Ts.__name__, 'Ts')
421+
Ts2 = TypeVarTuple('Ts2')
422+
self.assertEqual(Ts2.__name__, 'Ts2')
423+
418424
def test_instance_is_equal_to_itself(self):
419425
Ts = TypeVarTuple('Ts')
420426
self.assertEqual(Ts, Ts)
@@ -509,15 +515,6 @@ def test_repr_is_correct(self):
509515
self.assertEqual(repr(Unpack[tuple[Unpack[Ts]]]), '*tuple[*Ts]')
510516
self.assertEqual(repr(Unpack[Tuple[Unpack[Ts]]]), '*typing.Tuple[*Ts]')
511517

512-
def test_repr_is_correct(self):
513-
Ts = TypeVarTuple('Ts')
514-
self.assertEqual(repr(Ts), 'Ts')
515-
self.assertEqual(repr(Unpack[Ts]), '*Ts')
516-
self.assertEqual(repr(tuple[Unpack[Ts]]), 'tuple[*Ts]')
517-
self.assertEqual(repr(Tuple[Unpack[Ts]]), 'typing.Tuple[*Ts]')
518-
self.assertEqual(repr(Unpack[tuple[Unpack[Ts]]]), '*tuple[*Ts]')
519-
self.assertEqual(repr(Unpack[Tuple[Unpack[Ts]]]), '*typing.Tuple[*Ts]')
520-
521518
def test_variadic_class_repr_is_correct(self):
522519
Ts = TypeVarTuple('Ts')
523520
class A(Generic[Unpack[Ts]]): pass

Lib/typing.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,13 +939,13 @@ class C(Generic[*Ts]): ...
939939
"""
940940

941941
def __init__(self, name):
942-
self._name = name
942+
self.__name__ = name
943943

944944
def __iter__(self):
945945
yield Unpack[self]
946946

947947
def __repr__(self):
948-
return self._name
948+
return self.__name__
949949

950950
def __typing_subst__(self, arg):
951951
raise AssertionError

0 commit comments

Comments
 (0)