@@ -4965,17 +4965,28 @@ def test_get_args(self):
4965
4965
class C (Generic [T ]): pass
4966
4966
self .assertEqual (get_args (C [int ]), (int ,))
4967
4967
self .assertEqual (get_args (C [T ]), (T ,))
4968
+ self .assertEqual (get_args (typing .SupportsAbs [int ]), (int ,)) # Protocol
4969
+ self .assertEqual (get_args (typing .SupportsAbs [T ]), (T ,))
4970
+ self .assertEqual (get_args (Point2DGeneric [int ]), (int ,)) # TypedDict
4971
+ self .assertEqual (get_args (Point2DGeneric [T ]), (T ,))
4972
+ self .assertEqual (get_args (T ), ())
4968
4973
self .assertEqual (get_args (int ), ())
4974
+ self .assertEqual (get_args (Any ), ())
4975
+ self .assertEqual (get_args (Self ), ())
4976
+ self .assertEqual (get_args (LiteralString ), ())
4969
4977
self .assertEqual (get_args (ClassVar [int ]), (int ,))
4970
4978
self .assertEqual (get_args (Union [int , str ]), (int , str ))
4971
4979
self .assertEqual (get_args (Literal [42 , 43 ]), (42 , 43 ))
4972
4980
self .assertEqual (get_args (Final [List [int ]]), (List [int ],))
4981
+ self .assertEqual (get_args (Optional [int ]), (int , type (None )))
4982
+ self .assertEqual (get_args (Union [int , None ]), (int , type (None )))
4973
4983
self .assertEqual (get_args (Union [int , Tuple [T , int ]][str ]),
4974
4984
(int , Tuple [str , int ]))
4975
4985
self .assertEqual (g
8000
et_args (typing .Dict [int , Tuple [T , T ]][Optional [int ]]),
4976
4986
(int , Tuple [Optional [int ], Optional [int ]]))
4977
4987
self .assertEqual (get_args (Callable [[], T ][int ]), ([], int ))
4978
4988
self .assertEqual (get_args (Callable [..., int ]), (..., int ))
4989
+ self .assertEqual (get_args (Callable [[int ], str ]), ([int ], str ))
4979
4990
self .assertEqual (get_args (Union [int , Callable [[Tuple [T , ...]], str ]]),
4980
4991
(int , Callable [[Tuple [T , ...]], str ]))
4981
4992
self .assertEqual (get_args (Tuple [int , ...]), (int , ...))
@@ -4992,12 +5003,25 @@ class C(Generic[T]): pass
4992
5003
self .assertEqual (get_args (collections .abc .Callable [[int ], str ]),
4993
5004
get_args (Callable [[int ], str ]))
4994
5005
P = ParamSpec ('P' )
5006
+ self .assertEqual (get_args (P ), ())
5007
+ self .assertEqual (get_args (P .args ), ())
5008
+ self .assertEqual (get_args (P .kwargs ), ())
4995
5009
self .assertEqual (get_args (Callable [P , int ]), (P , int ))
5010
+ self .assertEqual (get_args (collections .abc .Callable [P , int ]), (P , int ))
4996
5011
self .assertEqual (get_args (Callable [Concatenate [int , P ], int ]),
4997
5012
(Concatenate [int , P ], int ))
5013
+ self .assertEqual (get_args (collections .abc .Callable [Concatenate [int , P ], int ]),
5014
+ (Concatenate [int , P ], int ))
5015
+ self .assertEqual (get_args (Concatenate [int , str , P ]), (int , str , P ))
4998
5016
self .assertEqual (get_args (list | str ), (list , str ))
4999
5017
self .assertEqual (get_args (Required [int ]), (int ,))
5000
5018
self .assertEqual (get_args (NotRequired [int ]), (int ,))
5019
+ self .assertEqual (get_args (TypeAlias ), ())
5020
+ self .assertEqual (get_args (TypeGuard [int ]), (int ,))
5021
+ Ts = TypeVarTuple ('Ts' )
5022
+ self .assertEqual (get_args (Ts ), ())
5023
+ self .assertEqual (get_args (Unpack [Ts ]), (Ts ,))
5024
+ self .assertEqual (get_args (tuple [Unpack [Ts ]]), (Unpack [Ts ],))
5001
5025
5002
5026
5003
5027
class CollectionsAbcTests (BaseTestCase ):
@@ -5762,9 +5786,12 @@ class Y(Generic[T], NamedTuple):
5762
5786
for G in X , Y :
5763
5787
with self .subTest (type = G ):
5764
5788
self .assertEqual (G .__parameters__ , (T ,))
5789
+ self .assertEqual (G [T ].__args__ , (T ,))
5790
+ self .assertEqual (get_args (G [T ]), (T ,))
5765
5791
A = G [int ]
5766
5792
self .assertIs (A .__origin__ , G )
5767
5793
self .assertEqual (A .__args__ , (int ,))
5794
+ self .assertEqual (get_args (A ), (int ,))
5768
5795
self .assertEqual (A .__parameters__ , ())
5769
5796
5770
5797
a = A (3 )
0 commit comments