diff options
author | Jelle Zijlstra <jelle.zijlstra@gmail.com> | 2022-03-18 17:56:36 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-18 17:56:36 (GMT) |
commit | 3a2b89580ded72262fbea0f7ad24096a90c42b9c (patch) | |
tree | 21941d20291148e508cf4755031ec34e1fe7986d | |
parent | d0a91bd277d1122b41d59e8022b596e3b3ae24fe (diff) | |
download | cpython-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.py | 15 | ||||
-rw-r--r-- | Lib/typing.py | 4 |
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 |