@@ -2571,10 +2571,10 @@ def _unpack_args(*args):
25712571 return newargs
25722572
25732573
2574- if _PEP_696_IMPLEMENTED :
2574+ if sys . version_info < ( 3 , 15 ) :
25752575 from typing import TypeVarTuple
25762576
2577- elif hasattr (typing , "TypeVarTuple" ): # 3.11+
2577+ elif hasattr (typing , "TypeVarTuple" ): # < 3.15
25782578
25792579 # Add default parameter - PEP 696 and bound/variance parameters
25802580 class TypeVarTuple (metaclass = _TypeVarLikeMeta ):
@@ -2586,18 +2586,23 @@ def __new__(cls, name, *, bound=None,
25862586 covariant = False , contravariant = False ,
25872587 infer_variance = False , default = NoDefault ):
25882588 if sys .version_info >= (3 , 15 ):
2589- # can pass variance arguments to typing.TypeVar
2589+ # can pass variance and default arguments
25902590 tvt = typing .TypeVarTuple (name , bound = bound ,
25912591 covariant = covariant ,
25922592 contravariant = contravariant ,
25932593 infer_variance = infer_variance ,
25942594 default = default )
25952595 else :
2596- tvt = typing .TypeVarTuple (name )
2596+ if _PEP_696_IMPLEMENTED :
2597+ # can pass default argument
2598+ tvt = typing .TypeVarTuple (name , default = default )
2599+ else :
2600+ tvt = typing .TypeVarTuple (name )
2601+ _set_default (tvt , default )
2602+
25972603 tvt .__covariant__ = covariant
25982604 tvt .__contravariant__ = contravariant
25992605 tvt .__infer_variance__ = infer_variance
2600- _set_default (tvt , default )
26012606
26022607 _set_module (tvt )
26032608
0 commit comments