@@ -1342,23 +1342,30 @@ def visit_Lambda(self, node: ast.Lambda) -> Any:
1342
1342
1343
1343
if sys .version_info < (3 , 13 ):
1344
1344
1345
+ try_attrs = ("body" , "orelse" , "handlers" , "finalbody" )
1346
+
1345
1347
def visit_Try (self , node : ast .Try ) -> Any :
1346
1348
# work around for https://github.com/python/cpython/issues/111123
1347
- args = {}
1348
- for k in ("body" , "orelse" , "handlers" , "finalbody" ):
1349
- args [k ] = [self .visit (x ) for x in getattr (node , k )]
1349
+ args = {
1350
+ k : [self .visit (x ) for x in getattr (node , k )] for k in self .try_attrs
1351
+ }
1352
+
1353
+ assert set (self .try_attrs ) == set (ast .Try ._fields )
1350
1354
1351
- return ast .Try (** args )
1355
+ return ast .Try (** args ) # type: ignore
1352
1356
1353
1357
if sys .version_info >= (3 , 11 ):
1354
1358
1355
1359
def visit_TryStar (self , node : ast .TryStar ) -> Any :
1356
1360
# work around for https://github.com/python/cpython/issues/111123
1357
- args = {}
1358
- for k in ("body" , "orelse" , "handlers" , "finalbody" ):
1359
- args [k ] = [self .visit (x ) for x in getattr (node , k )]
1361
+ args = {
1362
+ k : [self .visit (x ) for x in getattr (node , k )]
1363
+ for k in self .try_attrs
1364
+ }
1365
+
1366
+ assert set (self .try_attrs ) == set (ast .TryStar ._fields )
1360
1367
1361
- return ast .TryStar (** args )
1368
+ return ast .TryStar (** args ) # type: ignore
1362
1369
1363
1370
class FunctionTransformer (ast .NodeTransformer ):
1364
1371
"""
0 commit comments