self.assertEqual(repr(u), repr(int))
u = Union[List[int], int]
self.assertEqual(repr(u), 'typing.Union[typing.List[int], int]')
+ u = Union[list[int], dict[str, float]]
+ self.assertEqual(repr(u), 'typing.Union[list[int], dict[str, float]]')
def test_cannot_subclass(self):
with self.assertRaises(TypeError):
self.assertEqual(repr(Tuple[()]), 'typing.Tuple[()]')
self.assertEqual(repr(Tuple[int, float]), 'typing.Tuple[int, float]')
self.assertEqual(repr(Tuple[int, ...]), 'typing.Tuple[int, ...]')
+ self.assertEqual(repr(Tuple[list[int]]), 'typing.Tuple[list[int]]')
def test_errors(self):
with self.assertRaises(TypeError):
self.assertEqual(repr(ct2), 'typing.Callable[[str, float], int]')
ctv = Callable[..., str]
self.assertEqual(repr(ctv), 'typing.Callable[..., str]')
+ ct3 = Callable[[str, float], list[int]]
+ self.assertEqual(repr(ct3), 'typing.Callable[[str, float], list[int]]')
def test_callable_with_ellipsis(self):
self.assertEqual(repr(cv), 'typing.Final[int]')
cv = Final[Employee]
self.assertEqual(repr(cv), 'typing.Final[%s.Employee]' % __name__)
+ cv = Final[tuple[int]]
+ self.assertEqual(repr(cv), 'typing.Final[tuple[int]]')
def test_cannot_subclass(self):
with self.assertRaises(TypeError):
typically enough to uniquely identify a type. For everything
else, we fall back on repr(obj).
"""
+ if isinstance(obj, types.GenericAlias):
+ return repr(obj)
if isinstance(obj, type):
if obj.__module__ == 'builtins':
return obj.__qualname__