diff options
author | Simon Feltman <sfeltman@src.gnome.org> | 2014-04-30 16:59:50 -0700 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2015-09-29 23:16:32 -0400 |
commit | 3dca44e3f1aba172b8a71d3860d55167dc35a5dc (patch) | |
tree | 6c8e4f4b5e8a7eedf9cab903bdd6fb4c5db2db20 /giscanner | |
parent | c6aba9366a31eda73c6f3f07893bf9603374782d (diff) | |
download | gobject-introspection-3dca44e3f1aba172b8a71d3860d55167dc35a5dc.tar.gz |
docwriter: Update for Python 3 compatibility
Convert the results of various filter() calls to lists. This is
needed because filter() returns a generator in Python 3 and len()
checks are used on the results (which doesn't work on a generator).
Explicitly open resulting files for output in binary mode.
https://bugzilla.gnome.org/show_bug.cgi?id=679438
Diffstat (limited to 'giscanner')
-rw-r--r-- | giscanner/docwriter.py | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/giscanner/docwriter.py b/giscanner/docwriter.py index acbf279a..cfc41729 100644 --- a/giscanner/docwriter.py +++ b/giscanner/docwriter.py @@ -354,7 +354,7 @@ class DocFormatter(object): def format_xref(self, node, **attrdict): if node is None or not hasattr(node, 'namespace'): - attrs = [('xref', 'index')] + attrdict.items() + attrs = [('xref', 'index')] + list(sorted(attrdict.items())) return xmlwriter.build_xml_tag('link', attrs) elif isinstance(node, ast.Member): # Enum/BitField members are linked to the main enum page. @@ -365,14 +365,14 @@ class DocFormatter(object): return self.format_external_xref(node, attrdict) def format_internal_xref(self, node, attrdict): - attrs = [('xref', make_page_id(node))] + attrdict.items() + attrs = [('xref', make_page_id(node))] + list(sorted(attrdict.items())) return xmlwriter.build_xml_tag('link', attrs) def format_external_xref(self, node, attrdict): ns = node.namespace attrs = [('href', '../%s-%s/%s.html' % (ns.name, str(ns.version), make_page_id(node)))] - attrs += attrdict.items() + attrs += list(sorted(attrdict.items())) return xmlwriter.build_xml_tag('link', attrs, self.format_page_name(node)) def field_is_writable(self, field): @@ -606,8 +606,8 @@ class DocFormatterGjs(DocFormatterIntrospectableBase): default_constructor = None introspectable_constructors = \ - filter(lambda c: getattr(c, 'introspectable', True), - node.constructors) + list(filter(lambda c: getattr(c, 'introspectable', True), + node.constructors)) for c in introspectable_constructors: if zero_args_constructor is None and \ len(c.parameters) == 0: @@ -864,12 +864,11 @@ class DocFormatterGjs(DocFormatterIntrospectableBase): if isinstance(node, ast.Compound): fields = filter(self.field_is_writable, node.fields) out = '' - if len(fields) > 0: - out += "{\n" - for f in fields: - out += " <link xref='%s.%s-%s'>%s</link>: value\n" % \ - (node.namespace.name, node.name, f.name, f.name) - out += "}" + for f in fields: + out += " <link xref='%s.%s-%s'>%s</link>: value\n" % \ + (node.namespace.name, node.name, f.name, f.name) + if out: + out = "{\n" + out + "}" return out else: return '' @@ -958,5 +957,5 @@ class DocWriter(object): output_file_name = os.path.join(os.path.abspath(output), page_id + '.page') - with open(output_file_name, 'w') as fp: + with open(output_file_name, 'wb') as fp: fp.write(result) |