@@ -5785,44 +5785,36 @@ def test_substitution(self):
57855785 with self .subTest ("Check substitution result" ):
57865786 self .assertIs (unpacked_str , str )
57875787
5788- @skipUnless (TYPING_3_11_0 , "Needs Issue #103 first " )
5788+ @skipUnless (TYPING_3_11_0 , "Needs Issue #103 for <3.11 " )
57895789 def test_nested_unpack (self ):
57905790 T = TypeVar ('T' )
57915791 Ts = TypeVarTuple ("Ts" )
5792- Variadic = TypeAliasType ( "Variadic" , Tuple [int , Unpack [Ts ]], type_params = ( Ts ,))
5793- # Tuple[int, Tuple[str, int]]
5792+ Variadic = Tuple [int , Unpack [Ts ]]
5793+ # Tuple[int, int, Tuple[str, int]]
57945794 direct_subscription = Variadic [int , Tuple [str , int ]]
5795- # Tuple[int, Tuple[*Ts, int]]
5795+ # Tuple[int, int, Tuple[*Ts, int]]
57965796 TupleAliasTs = Variadic [int , Tuple [Unpack [Ts ], int ]]
57975797
57985798 # if this fails all below are likely to fail too
5799- # Tuple[int, Tuple[str, int]]
5799+ # Tuple[int, int, Tuple[str, int]]
58005800 recursive_unpack = TupleAliasTs [str ]
58015801 self .assertEqual (direct_subscription , recursive_unpack )
5802- self .assertEqual (get_args (recursive_unpack ), (int , Tuple [str , int ]))
5802+ self .assertEqual (get_args (recursive_unpack ), (int , int , Tuple [str , int ]))
58035803
58045804 TupleAliasTsT = Variadic [Tuple [Unpack [Ts ], T ]]
5805- with self .subTest ("Two type vars" ):
5806- # Tuple[int, Tuple[List[str], object]]
5807- nested_tuple_A = TupleAliasTsT [List [str ], object ]
5808- nested_tuple_A_unpack = TupleAliasTsT [Unpack [Tuple [List [str ]]], object ]
5809- self .assertEqual (nested_tuple_A , nested_tuple_A_unpack )
5810- self .assertEqual (get_args (nested_tuple_A ), (Tuple [List [str ], object ],))
5811-
5812- with self .subTest ("With Callable and Unpack" ):
5813- # Tuple[int, (str, int) -> object]
5814- CallableAliasTsT = Variadic [Callable [[Unpack [Ts ]], T ]]
5815- callable_fully_subscripted = CallableAliasTsT [Unpack [Tuple [str , int ]], object ]
5816- self .assertEqual (get_args (callable_fully_subscripted ), (Callable [[str , int ], object ],))
5817-
58185805 # Equivalent Forms
58195806 with self .subTest ("Equivalence of variadic arguments" ):
58205807 nested_tuple_bare = TupleAliasTsT [str , int , object ]
58215808 self .assertEqual (nested_tuple_bare , TupleAliasTsT [Unpack [Tuple [str , int , object ]]])
58225809 self .assertEqual (nested_tuple_bare , TupleAliasTsT [Unpack [Tuple [str , int ]], object ])
58235810 self .assertEqual (nested_tuple_bare , TupleAliasTsT [Unpack [Tuple [str ]], Unpack [Tuple [int ]], object ])
5824- self .assertEqual (get_args (nested_tuple_bare ), (Tuple [str , int , object ],))
5811+ self .assertEqual (get_args (nested_tuple_bare ), (int , Tuple [str , int , object ],))
58255812
5813+ with self .subTest ("With Callable and Unpack" ):
5814+ # Tuple[int, (str, int) -> object]
5815+ CallableAliasTsT = Variadic [Callable [[Unpack [Ts ]], T ]]
5816+ callable_fully_subscripted = CallableAliasTsT [Unpack [Tuple [str , int ]], object ]
5817+ self .assertEqual (get_args (callable_fully_subscripted ), (int , Callable [[str , int ], object ],))
58265818
58275819class TypeVarTupleTests (BaseTestCase ):
58285820
0 commit comments