summaryrefslogtreecommitdiff
path: root/rebuilder.py
diff options
context:
space:
mode:
authorEmile Anclin <emile.anclin@logilab.fr>2010-10-07 10:33:48 +0200
committerEmile Anclin <emile.anclin@logilab.fr>2010-10-07 10:33:48 +0200
commit108363a220a5bc27b96bab4811e130fdcc48fa0d (patch)
tree93dc8d88deb8c6d35d85e841aa3f0cc87f55e72d /rebuilder.py
parent093593a42b502e1741e2f88d8744092c19887e72 (diff)
downloadastroid-git-108363a220a5bc27b96bab4811e130fdcc48fa0d.tar.gz
py3k: keyword "cmp" for list sorting is removed in 3.x
Diffstat (limited to 'rebuilder.py')
-rw-r--r--rebuilder.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/rebuilder.py b/rebuilder.py
index 4bdbc6ca..526cb4c1 100644
--- a/rebuilder.py
+++ b/rebuilder.py
@@ -75,6 +75,15 @@ REDIRECT = {'arguments': 'Arguments',
'Invert': 'UnaryOp'
}
+import sys
+if sys.version_info >= (2, 4):
+ _key_func = lambda node: node.fromlineno
+ def sort_locals(my_list):
+ my_list.sort(key=_key_func)
+else:
+ _cmp_nodes = lambda x, y: cmp(x.fromlineno, y.fromlineno)
+ def sort_locals(my_list):
+ my_list.sort(_cmp_nodes)
class RebuildVisitor(object):
"""Visitor to transform an AST to an ASTNG
@@ -204,7 +213,6 @@ class RebuildVisitor(object):
"""store imported names to the locals;
resort the locals if coming from a delayed node
"""
- cmp_nodes = lambda x, y: cmp(x.fromlineno, y.fromlineno)
for (name, asname) in node.names:
if name == '*':
try:
@@ -214,11 +222,12 @@ class RebuildVisitor(object):
for name in imported.wildcard_import_names():
node.parent.set_local(name, node)
if delayed:
- node.parent.scope().locals[name].sort(cmp_nodes)
+ sort_locals(node.parent.scope().locals[name])
+
else:
node.parent.set_local(asname or name, node)
if delayed:
- node.parent.scope().locals[asname or name].sort(cmp_nodes)
+ sort_locals(node.parent.scope().locals[asname or name])
def visit_function(self, node, parent):