You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 09:22:40 +08:00
Add 3.7 async listcomp
This commit is contained in:
@@ -1221,6 +1221,8 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
n = k[0]
|
||||
pass
|
||||
pass
|
||||
elif ast == "listcomp_async":
|
||||
store = ast[3]
|
||||
else:
|
||||
assert n == "list_iter", n
|
||||
|
||||
@@ -1287,6 +1289,13 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
self.preorder(n[1])
|
||||
else:
|
||||
self.preorder(n[0])
|
||||
|
||||
if node == "listcomp_async":
|
||||
self.write(" async")
|
||||
in_node_index = 3
|
||||
else:
|
||||
in_node_index = -3
|
||||
|
||||
self.write(" for ")
|
||||
if comp_store:
|
||||
self.preorder(comp_store)
|
||||
@@ -1295,7 +1304,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
|
||||
# FIXME this is all merely approximate
|
||||
self.write(" in ")
|
||||
self.preorder(node[-3])
|
||||
self.preorder(node[in_node_index])
|
||||
|
||||
# Here is where we handle nested list iterations.
|
||||
if ast == "list_comp" and self.version != 3.0:
|
||||
@@ -1434,9 +1443,14 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
if node[0].kind == "load_closure":
|
||||
self.listcomprehension_walk2(node)
|
||||
else:
|
||||
self.comprehension_walk_newer(node, 1, 0)
|
||||
if node == "listcomp_async":
|
||||
list_iter_index = 5
|
||||
else:
|
||||
list_iter_index = 1
|
||||
self.comprehension_walk_newer(node, list_iter_index, 0)
|
||||
self.write("]")
|
||||
self.prune()
|
||||
n_listcomp_async = n_listcomp
|
||||
|
||||
def setcomprehension_walk3(self, node, collection_index):
|
||||
"""Set comprehensions the way they are done in Python3.
|
||||
|
Reference in New Issue
Block a user