diff options
author | Emile Anclin <emile.anclin@logilab.fr> | 2010-10-07 10:33:48 +0200 |
---|---|---|
committer | Emile Anclin <emile.anclin@logilab.fr> | 2010-10-07 10:33:48 +0200 |
commit | 108363a220a5bc27b96bab4811e130fdcc48fa0d (patch) | |
tree | 93dc8d88deb8c6d35d85e841aa3f0cc87f55e72d /rebuilder.py | |
parent | 093593a42b502e1741e2f88d8744092c19887e72 (diff) | |
download | astroid-git-108363a220a5bc27b96bab4811e130fdcc48fa0d.tar.gz |
py3k: keyword "cmp" for list sorting is removed in 3.x
Diffstat (limited to 'rebuilder.py')
-rw-r--r-- | rebuilder.py | 15 |
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): |