from typing import Generic, ParamSpec, TypeVar
P_default = ParamSpec("P_default", default=...)
T = TypeVar("T")
T_default = TypeVar("T_default", default=object)
class A(Generic[T, P_default, T_default]): pass
>>> A[int]
Traceback (most recent call last):
...
TypeError: can only concatenate list (not "tuple") to list
Bug report
Bug description:
In accordance to the typing specifications,
default=ofParamSpeccan take an ellipsis.... However, this is not handled properly with old-style generics in the following example and causes a runtime error:>>> A[int] Traceback (most recent call last): ... TypeError: can only concatenate list (not "tuple") to listCPython versions tested on:
3.13
Operating systems tested on:
Linux
Linked PRs
TypeErrorwhen there is aParamSpecsubstitution with a default #138867ParamSpecdefaults that are not lists … #138868ParamSpecdefaults that are not lists … (GH-138868) #140207ParamSpecdefaults that are not lists … (GH-138868) #140208