summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gmail.com>2019-09-03 13:15:57 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2019-09-03 13:15:57 +0000
commit56c6970b027740d1a35e8452a9172c9e7c2368d5 (patch)
tree8e88b0aafbb717ec5da00dbfb2507ebfb41f8e59
parent6672a23fb740502776054c2c1f9330a85abda106 (diff)
parentb5ea5a0cf1f12be5072b9f06d1127a8977414916 (diff)
downloadgtk+-56c6970b027740d1a35e8452a9172c9e7c2368d5.tar.gz
Merge branch 'gtk-2-24-py3' into 'gtk-2-24'
Make gtk-builder-convert compatible with Python 3 See merge request GNOME/gtk!1080
-rwxr-xr-xgtk/gtk-builder-convert41
1 files changed, 17 insertions, 24 deletions
diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert
index ea737de195..b1faba822e 100755
--- a/gtk/gtk-builder-convert
+++ b/gtk/gtk-builder-convert
@@ -34,8 +34,10 @@ When OUTPUT is -, write to standard output.
Examples:
gtk-builder-convert preference.glade preferences.ui
-Report bugs to http://bugzilla.gnome.org/."""
+Report bugs to https://gitlab.gnome.org/GNOME/gtk/issues/new
+"""
+from __future__ import print_function
import getopt
import os
import sys
@@ -47,12 +49,7 @@ DIALOGS = ['GtkDialog',
'GtkMessageDialog']
WINDOWS = ['GtkWindow'] + DIALOGS
-# The subprocess is only available in Python 2.4+
-try:
- import subprocess
- subprocess # pyflakes
-except ImportError:
- subprocess = None
+import subprocess
def get_child_nodes(node):
assert node.tagName == 'object'
@@ -259,7 +256,7 @@ class GtkBuilderConverter(object):
for node in objects:
self._convert(node.getAttribute("class"), node)
if self._get_object(node.getAttribute('id')) is not None:
- print "WARNING: duplicate id \"" + node.getAttribute('id') + "\""
+ print("WARNING: duplicate id \"" + node.getAttribute('id') + "\"")
self.objects[node.getAttribute('id')] = node
# Convert Gazpachos UI tag
@@ -270,15 +267,8 @@ class GtkBuilderConverter(object):
for node in self._dom.getElementsByTagName("accessibility"):
self._convert_accessibility(node)
- # Output the newly created root objects and sort them
- # by attribute id
- # FIXME: Use sorted(self.root_objects,
- # key=lambda n: n.getAttribute('id'),
- # reverse=True):
- # when we can depend on python 2.4 or higher
root_objects = self.root_objects[:]
- root_objects.sort(lambda a, b: cmp(b.getAttribute('id'),
- a.getAttribute('id')))
+ root_objects.sort(key=lambda a: a.getAttribute('id'), reverse=True)
for obj in root_objects:
self._interface.childNodes.insert(0, obj)
@@ -461,8 +451,8 @@ class GtkBuilderConverter(object):
if signal_name in ['activate', 'toggled']:
action.appendChild(signal)
else:
- print 'Unhandled signal %s::%s' % (node.getAttribute('class'),
- signal_name)
+ print('Unhandled signal %s::%s' % (node.getAttribute('class'),
+ signal_name))
if not uimgr.childNodes:
child = self._dom.createElement('child')
@@ -481,8 +471,8 @@ class GtkBuilderConverter(object):
for accelerator in get_accelerator_nodes(node):
signal_name = accelerator.getAttribute('signal')
if signal_name != 'activate':
- print 'Unhandled accelerator signal for %s::%s' % (
- node.getAttribute('class'), signal_name)
+ print('Unhandled accelerator signal for %s::%s' % (
+ node.getAttribute('class'), signal_name))
continue
accelerator.removeAttribute('signal')
child.appendChild(accelerator)
@@ -747,7 +737,7 @@ def _indent(output):
return s.stdout.read()
def usage():
- print __doc__
+ print(__doc__)
def main(args):
try:
@@ -788,10 +778,13 @@ def main(args):
xml = _indent(conv.to_xml())
if output_filename == "-":
- print xml
+ if isinstance(xml, str):
+ print(xml)
+ else:
+ print(xml.decode(sys.stdout.encoding))
else:
- open(output_filename, 'w').write(xml)
- print "Wrote", output_filename
+ open(output_filename, 'wb').write(xml)
+ print("Wrote", output_filename)
return 0