summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJelle Zijlstra <jelle.zijlstra@gmail.com>2022-03-18 17:56:36 (GMT)
committerGitHub <noreply@github.com>2022-03-18 17:56:36 (GMT)
commit3a2b89580ded72262fbea0f7ad24096a90c42b9c (patch)
tree21941d20291148e508cf4755031ec34e1fe7986d
parentd0a91bd277d1122b41d59e8022b596e3b3ae24fe (diff)
downloadcpython-3a2b89580ded72262fbea0f7ad24096a90c42b9c.zip
cpython-3a2b89580ded72262fbea0f7ad24096a90c42b9c.tar.gz
cpython-3a2b89580ded72262fbea0f7ad24096a90c42b9c.tar.bz2
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.
-rw-r--r--Lib/test/test_typing.py15
-rw-r--r--Lib/typing.py4
2 files changed, 8 insertions, 11 deletions
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py
index bcffdc8..0e28655 100644
--- a/Lib/test/test_typing.py
+++ b/Lib/test/test_typing.py
@@ -415,6 +415,12 @@ class TypeVarTupleTests(BaseTestCase):
if not string.endswith(tail):
self.fail(f"String {string!r} does not end with {tail!r}")
+ def test_name(self):
+ Ts = TypeVarTuple('Ts')
+ self.assertEqual(Ts.__name__, 'Ts')
+ Ts2 = TypeVarTuple('Ts2')
+ self.assertEqual(Ts2.__name__, 'Ts2')
+
def test_instance_is_equal_to_itself(self):
Ts = TypeVarTuple('Ts')
self.assertEqual(Ts, Ts)
@@ -509,15 +515,6 @@ class TypeVarTupleTests(BaseTestCase):
self.assertEqual(repr(Unpack[tuple[Unpack[Ts]]]), '*tuple[*Ts]')
self.assertEqual(repr(Unpack[Tuple[Unpack[Ts]]]), '*typing.Tuple[*Ts]')
- def test_repr_is_correct(self):
- Ts = TypeVarTuple('Ts')
- self.assertEqual(repr(Ts), 'Ts')
- self.assertEqual(repr(Unpack[Ts]), '*Ts')
- self.assertEqual(repr(tuple[Unpack[Ts]]), 'tuple[*Ts]')
- self.assertEqual(repr(Tuple[Unpack[Ts]]), 'typing.Tuple[*Ts]')
- self.assertEqual(repr(Unpack[tuple[Unpack[Ts]]]), '*tuple[*Ts]')
- self.assertEqual(repr(Unpack[Tuple[Unpack[Ts]]]), '*typing.Tuple[*Ts]')
-
def test_variadic_class_repr_is_correct(self):
Ts = TypeVarTuple('Ts')
class A(Generic[Unpack[Ts]]): pass
diff --git a/Lib/typing.py b/Lib/typing.py
index e861362..f0e8490 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -939,13 +939,13 @@ class TypeVarTuple(_Final, _Immutable, _root=True):
"""
def __init__(self, name):
- self._name = name
+ self.__name__ = name
def __iter__(self):
yield Unpack[self]
def __repr__(self):
- return self._name
+ return self.__name__
def __typing_subst__(self, arg):
raise AssertionError