Uupstream pull request: https://gitlab.gnome.org/GNOME/gtk/merge_requests/1080 From 3ff8f70b9686205f0618d7a479fd42a457b90165 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 3 Sep 2019 13:54:49 +0200 Subject: [PATCH 1/3] Make gtk-builder-convert compatible with Python 3 - Convert tabs to spaces - Use print as a function, even on Python 2 - Output a binary file, or decode for stdout --- gtk/gtk-builder-convert | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert index ea737de195..41f7a8c941 100755 --- a/gtk/gtk-builder-convert +++ b/gtk/gtk-builder-convert @@ -36,6 +36,7 @@ Examples: Report bugs to http://bugzilla.gnome.org/.""" +from __future__ import print_function import getopt import os import sys @@ -259,7 +260,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 @@ -277,8 +278,7 @@ class GtkBuilderConverter(object): # 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 +461,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 +481,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 +747,7 @@ def _indent(output): return s.stdout.read() def usage(): - print __doc__ + print(__doc__) def main(args): try: @@ -788,10 +788,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 -- 2.22.0 From 4f8efe3ae09ee69657b83399a118b5252f25d830 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 3 Sep 2019 14:53:05 +0200 Subject: [PATCH 2/3] gtk-builder-convert: Remove compat code for Python 2.3 and below --- gtk/gtk-builder-convert | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert index 41f7a8c941..a16f83b217 100755 --- a/gtk/gtk-builder-convert +++ b/gtk/gtk-builder-convert @@ -48,12 +48,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' @@ -271,12 +266,6 @@ 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(key=lambda a: a.getAttribute('id'), reverse=True) for obj in root_objects: -- 2.22.0 From b5ea5a0cf1f12be5072b9f06d1127a8977414916 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 3 Sep 2019 14:56:14 +0200 Subject: [PATCH 3/3] gtk-builder-convert: Update bug report URL Also, use a newline instead of period at the end to make the URL easy to copy --- gtk/gtk-builder-convert | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert index a16f83b217..b1faba822e 100755 --- a/gtk/gtk-builder-convert +++ b/gtk/gtk-builder-convert @@ -34,7 +34,8 @@ 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 -- 2.22.0