We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
ParamSpec
1 parent 805e336 commit deffc89Copy full SHA for deffc89
Lib/test/test_typing.py
@@ -761,6 +761,16 @@ class A(Generic[T, P, U]): ...
761
self.assertEqual(A[float, [range]].__args__, (float, (range,), float))
762
self.assertEqual(A[float, [range], int].__args__, (float, (range,), int))
763
764
+ def test_paramspec_and_typevar_specialization_2(self):
765
+ T = TypeVar("T")
766
+ P = ParamSpec('P', default=...)
767
+ U = TypeVar("U", default=float)
768
+ self.assertEqual(P.__default__, ...)
769
+ class A(Generic[T, P, U]): ...
770
+ self.assertEqual(A[float].__args__, (float, ..., float))
771
+ self.assertEqual(A[float, [range]].__args__, (float, (range,), float))
772
+ self.assertEqual(A[float, [range], int].__args__, (float, (range,), int))
773
+
774
def test_typevartuple_none(self):
775
U = TypeVarTuple('U')
776
U_None = TypeVarTuple('U_None', default=None)
Lib/typing.py
@@ -1110,6 +1110,8 @@ def _paramspec_prepare_subst(self, alias, args):
1110
# Convert lists to tuples to help other libraries cache the results.
1111
elif isinstance(args[i], list):
1112
args = (*args[:i], tuple(args[i]), *args[i+1:])
1113
+ else:
1114
+ args = (*args[:i], args[i], *args[i + 1:])
1115
return args
1116
1117
0 commit comments