Index: tools/pretty_vcproj.py |
diff --git a/tools/pretty_vcproj.py b/tools/pretty_vcproj.py |
index 6099bd7cc4d8ccd61dd53f850f63f863189e576a..d6de73e34501722676eeb053e39ac8b5816f66f8 100755 |
--- a/tools/pretty_vcproj.py |
+++ b/tools/pretty_vcproj.py |
@@ -12,6 +12,8 @@ |
It outputs the resulting xml to stdout. |
""" |
+from __future__ import print_function |
+ |
__author__ = 'nsylvain (Nicolas Sylvain)' |
import os |
@@ -24,44 +26,31 @@ REPLACEMENTS = dict() |
ARGUMENTS = None |
-class CmpTuple(object): |
- """Compare function between 2 tuple.""" |
- def __call__(self, x, y): |
- return cmp(x[0], y[0]) |
- |
- |
-class CmpNode(object): |
- """Compare function between 2 xml nodes.""" |
- |
- def __call__(self, x, y): |
- def get_string(node): |
- node_string = "node" |
- node_string += node.nodeName |
- if node.nodeValue: |
- node_string += node.nodeValue |
- |
- if node.attributes: |
- # We first sort by name, if present. |
- node_string += node.getAttribute("Name") |
- |
- all_nodes = [] |
- for (name, value) in node.attributes.items(): |
- all_nodes.append((name, value)) |
+def GetNodeString(x): |
+ node_string = "node" |
+ node_string += node.nodeName |
+ if node.nodeValue: |
+ node_string += node.nodeValue |
- all_nodes.sort(CmpTuple()) |
- for (name, value) in all_nodes: |
- node_string += name |
- node_string += value |
+ if node.attributes: |
+ # We first sort by name, if present. |
+ node_string += node.getAttribute("Name") |
- return node_string |
+ all_nodes = [] |
+ for (name, value) in node.attributes.items(): |
+ all_nodes.append((name, value)) |
- return cmp(get_string(x), get_string(y)) |
+ all_nodes.sort(key=(lambda node: node[0])) |
+ for (name, value) in all_nodes: |
+ node_string += name |
+ node_string += value |
+ return node_string |
def PrettyPrintNode(node, indent=0): |
if node.nodeType == Node.TEXT_NODE: |
if node.data.strip(): |
- print '%s%s' % (' '*indent, node.data.strip()) |
+ print('%s%s' % (' '*indent, node.data.strip())) |
return |
if node.childNodes: |
@@ -73,23 +62,23 @@ def PrettyPrintNode(node, indent=0): |
# Print the main tag |
if attr_count == 0: |
- print '%s<%s>' % (' '*indent, node.nodeName) |
+ print('%s<%s>' % (' '*indent, node.nodeName)) |
else: |
- print '%s<%s' % (' '*indent, node.nodeName) |
+ print('%s<%s' % (' '*indent, node.nodeName)) |
all_attributes = [] |
for (name, value) in node.attributes.items(): |
all_attributes.append((name, value)) |
- all_attributes.sort(CmpTuple()) |
+ all_attributes.sort(key=(lambda attr: attr[0])) |
for (name, value) in all_attributes: |
- print '%s %s="%s"' % (' '*indent, name, value) |
- print '%s>' % (' '*indent) |
+ print('%s %s="%s"' % (' '*indent, name, value)) |
+ print('%s>' % (' '*indent)) |
if node.nodeValue: |
- print '%s %s' % (' '*indent, node.nodeValue) |
+ print('%s %s' % (' '*indent, node.nodeValue)) |
for sub_node in node.childNodes: |
PrettyPrintNode(sub_node, indent=indent+2) |
- print '%s</%s>' % (' '*indent, node.nodeName) |
+ print('%s</%s>' % (' '*indent, node.nodeName)) |
def FlattenFilter(node): |
@@ -186,7 +175,7 @@ def CleanupVcproj(node): |
# Sort the list. |
- node_array.sort(CmpNode()) |
+ node_array.sort(key=GetNodeString) |
# Insert the nodes in the correct order. |
for new_node in node_array: |