@@ -642,12 +642,24 @@ def put_value(self, value: object, name: str, parent: Optional[object] = None, a
642642            self .write_ln (f"{ name } { types } { value_str } \n " )
643643
644644    def  is_type_var (self , tp : type ) ->  bool :
645-         return  (issubclass (tp , typing .TypeVar )
646-             or  (sys .version_info  >=  (3 , 11 ) and  issubclass (tp , typing .TypeVarTuple ))
647-             or  (typing_extensions  is  not None 
648-             and  (
649-                 issubclass (tp , typing_extensions .TypeVar )
650-                 or  issubclass (tp , typing_extensions .TypeVarTuple ))))
645+         if  issubclass (tp , typing .TypeVar ):
646+             return  True 
647+         if  sys .version_info  >=  (3 , 10 ) and  issubclass (tp , typing .ParamSpec ):
648+             return  True 
649+         if  sys .version_info  >=  (3 , 11 ) and  issubclass (tp , typing .TypeVarTuple ):
650+             return  True 
651+         if  typing_extensions  is  not None :
652+             if  issubclass (
653+                 tp ,
654+                 (
655+                     typing_extensions .TypeVar ,
656+                     typing_extensions .ParamSpec ,
657+                     typing_extensions .TypeVarTuple 
658+                 )
659+             ):
660+                 return  True 
661+         return  False 
662+ 
651663
652664    def  simplify_types (self , s : str ) ->  str :
653665        """ 
@@ -1017,6 +1029,10 @@ def expr_str(self, e: Any, abbrev: bool = True) -> Optional[str]:
10171029            return  f'"{ e .__forward_arg__ }  
10181030        elif  issubclass (tp , enum .Enum ):
10191031            return  self .type_str (tp ) +  '.'  +  e .name 
1032+         elif  (sys .version_info  >=  (3 , 10 ) and  issubclass (tp , typing .ParamSpec )) \
1033+             or  (typing_extensions  is  not None  and  issubclass (tp , typing_extensions .ParamSpec )):
1034+             tv  =  self .import_object (tp .__module__ , "ParamSpec" )
1035+             return  f'{ tv } { e .__name__ }  
10201036        elif  (sys .version_info  >=  (3 , 11 ) and  issubclass (tp , typing .TypeVarTuple )) \
10211037            or  (typing_extensions  is  not None  and  issubclass (tp , typing_extensions .TypeVarTuple )):
10221038            tv  =  self .import_object (tp .__module__ , "TypeVarTuple" )
0 commit comments