@@ -335,19 +335,38 @@ def _build_subscript(
335335 parent : Module | Class ,
336336 * ,
337337 parse_strings : bool = False ,
338+ literal_strings : bool = False ,
339+ in_subscript : bool = False ,
338340 ** kwargs : Any ,
339341) -> Expression :
340342 left = _build (node .value , parent , ** kwargs )
341343 if parse_strings :
342- literal_strings = left .full in {"typing.Literal" , "typing_extensions.Literal" } # type: ignore[union-attr]
343- subscript = _build (node .slice , parent , parse_strings = True , ** {** kwargs , "literal_strings" : literal_strings })
344+ if left .full in {"typing.Literal" , "typing_extensions.Literal" }: # type: ignore[union-attr]
345+ literal_strings = True
346+ subscript = _build (
347+ node .slice ,
348+ parent ,
349+ parse_strings = True ,
350+ literal_strings = literal_strings ,
351+ in_subscript = True ,
352+ ** kwargs ,
353+ )
344354 else :
345- subscript = _build (node .slice , parent , ** kwargs )
355+ subscript = _build (node .slice , parent , in_subscript = True , ** kwargs )
346356 return Expression (left , "[" , subscript , "]" )
347357
348358
349- def _build_tuple (node : ast .Tuple , parent : Module | Class , ** kwargs : Any ) -> Expression :
350- return Expression (* _join ([_build (el , parent , ** kwargs ) for el in node .elts ], ", " ))
359+ def _build_tuple (
360+ node : ast .Tuple ,
361+ parent : Module | Class ,
362+ * ,
363+ in_subscript : bool = False ,
364+ ** kwargs : Any ,
365+ ) -> Expression :
366+ values = _join ([_build (el , parent , ** kwargs ) for el in node .elts ], ", " )
367+ if in_subscript :
368+ return Expression (* values )
369+ return Expression ("(" , * values , ")" )
351370
352371
353372def _build_uadd (node : ast .UAdd , parent : Module | Class , ** kwargs : Any ) -> str :
0 commit comments