From b367b4ed409c02b5708cddb676276a7c413a46f0 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Mon, 24 Jan 2022 15:11:59 +0300 Subject: [PATCH 1/2] bpo-46396: remove extra checks from `Concatenate` --- typing_extensions/src/typing_extensions.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/typing_extensions/src/typing_extensions.py b/typing_extensions/src/typing_extensions.py index 2e0b3d78b..6dbe72e7a 100644 --- a/typing_extensions/src/typing_extensions.py +++ b/typing_extensions/src/typing_extensions.py @@ -1802,13 +1802,8 @@ def _get_type_vars(self, tvars): # 3.6-3.9 @typing._tp_cache def _concatenate_getitem(self, parameters): - if parameters == (): - raise TypeError("Cannot take a Concatenate of no types.") if not isinstance(parameters, tuple): parameters = (parameters,) - if not isinstance(parameters[-1], ParamSpec): - raise TypeError("The last parameter to Concatenate should be a " - "ParamSpec variable.") msg = "Concatenate[arg, ...]: each arg must be a type." parameters = tuple(typing._type_check(p, msg) for p in parameters) return _ConcatenateGenericAlias(self, parameters) From 94929b6c3b5788f0b772e15a54fc3e585d8a9625 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Mon, 24 Jan 2022 15:16:19 +0300 Subject: [PATCH 2/2] Update test_typing_extensions.py --- .../src/test_typing_extensions.py | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/typing_extensions/src/test_typing_extensions.py b/typing_extensions/src/test_typing_extensions.py index ab6a84de1..27babaa6e 100644 --- a/typing_extensions/src/test_typing_extensions.py +++ b/typing_extensions/src/test_typing_extensions.py @@ -2126,28 +2126,6 @@ def test_valid_uses(self): C3 = collections.abc.Callable[Concatenate[int, P], int] C4 = collections.abc.Callable[Concatenate[int, T, P], T] - def test_invalid_uses(self): - P = ParamSpec('P') - T = TypeVar('T') - - with self.assertRaisesRegex( - TypeError, - 'Cannot take a Concatenate of no types', - ): - Concatenate[()] - - with self.assertRaisesRegex( - TypeError, - 'The last parameter to Concatenate should be a ParamSpec variable', - ): - Concatenate[P, T] - - with self.assertRaisesRegex( - TypeError, - 'each arg must be a type', - ): - Concatenate[1, P] - def test_basic_introspection(self): P = ParamSpec('P') C1 = Concatenate[int, P]