Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f369470

Browse files
committed
Fix compiler.ast.flatten function so that it works on lists.
1 parent 7627617 commit f369470

3 files changed

Lines changed: 13 additions & 8 deletions

File tree

Lib/compiler/ast.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
"""
55
from consts import CO_VARARGS, CO_VARKEYWORDS
66

7-
def flatten(list):
7+
def flatten(seq):
88
l = []
9-
for elt in list:
9+
for elt in seq:
1010
t = type(elt)
1111
if t is tuple or t is list:
1212
for elt2 in flatten(elt):
@@ -15,8 +15,8 @@ def flatten(list):
1515
l.append(elt)
1616
return l
1717

18-
def flatten_nodes(list):
19-
return [n for n in flatten(list) if isinstance(n, Node)]
18+
def flatten_nodes(seq):
19+
return [n for n in flatten(seq) if isinstance(n, Node)]
2020

2121
nodes = {}
2222

Lib/test/test_compiler.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import compiler
2+
from compiler.ast import flatten
23
import os
34
import test.test_support
45
import unittest
@@ -60,6 +61,10 @@ def _check_lineno(self, node):
6061
for child in node.getChildNodes():
6162
self.check_lineno(child)
6263

64+
def testFlatten(self):
65+
self.assertEquals(flatten([1, [2]]), [1, 2])
66+
self.assertEquals(flatten((1, (2,))), [1, 2])
67+
6368
NOLINENO = (compiler.ast.Module, compiler.ast.Stmt, compiler.ast.Discard)
6469

6570
###############################################################################

Tools/compiler/astgen.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,9 @@ def main():
234234
"""
235235
from consts import CO_VARARGS, CO_VARKEYWORDS
236236

237-
def flatten(list):
237+
def flatten(seq):
238238
l = []
239-
for elt in list:
239+
for elt in seq:
240240
t = type(elt)
241241
if t is tuple or t is list:
242242
for elt2 in flatten(elt):
@@ -245,8 +245,8 @@ def flatten(list):
245245
l.append(elt)
246246
return l
247247

248-
def flatten_nodes(list):
249-
return [n for n in flatten(list) if isinstance(n, Node)]
248+
def flatten_nodes(seq):
249+
return [n for n in flatten(seq) if isinstance(n, Node)]
250250

251251
nodes = {}
252252

0 commit comments

Comments
 (0)