summaryrefslogtreecommitdiff
path: root/giscanner/xmlwriter.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/xmlwriter.py')
-rwxr-xr-xgiscanner/xmlwriter.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/giscanner/xmlwriter.py b/giscanner/xmlwriter.py
index 0c734a33..851c4c07 100755
--- a/giscanner/xmlwriter.py
+++ b/giscanner/xmlwriter.py
@@ -22,6 +22,7 @@ from __future__ import with_statement
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
+from __future__ import unicode_literals
import os
@@ -43,13 +44,13 @@ def build_xml_tag(tag_name, attributes=None, data=None, self_indent=0,
self_indent_char=' '):
if attributes is None:
attributes = []
- prefix = u'<%s' % (tag_name, )
+ prefix = '<%s' % (tag_name, )
if data is not None:
- if isinstance(data, str):
+ if isinstance(data, bytes):
data = data.decode('UTF-8')
- suffix = u'>%s</%s>' % (escape(data), tag_name)
+ suffix = '>%s</%s>' % (escape(data), tag_name)
else:
- suffix = u'/>'
+ suffix = '/>'
attrs = collect_attributes(
tag_name, attributes,
self_indent,
@@ -62,7 +63,7 @@ class XMLWriter(object):
def __init__(self):
self._data = StringIO()
- self._data.write('<?xml version="1.0"?>\n')
+ self._data.write(b'<?xml version="1.0"?>\n')
self._tag_stack = []
self._indent = 0
self._indent_unit = 2
@@ -75,10 +76,10 @@ class XMLWriter(object):
attributes = []
attrs = collect_attributes(tag_name, attributes,
self._indent, self._indent_char, len(tag_name) + 2)
- self.write_line(u'<%s%s>' % (tag_name, attrs))
+ self.write_line('<%s%s>' % (tag_name, attrs))
def _close_tag(self, tag_name):
- self.write_line(u'</%s>' % (tag_name, ))
+ self.write_line('</%s>' % (tag_name, ))
# Public API
@@ -93,18 +94,18 @@ class XMLWriter(object):
def get_xml(self):
return self._data.getvalue()
- def write_line(self, line=u'', indent=True, do_escape=False):
- if isinstance(line, str):
+ def write_line(self, line='', indent=True, do_escape=False):
+ if isinstance(line, bytes):
line = line.decode('utf-8')
assert isinstance(line, unicode)
if do_escape:
line = escape(line)
if indent:
- self._data.write('%s%s%s' % (self._indent_char * self._indent,
- line.encode('utf-8'),
- self._newline_char))
+ self._data.write(('%s%s%s' % (self._indent_char * self._indent,
+ line,
+ self._newline_char)).encode('UTF-8'))
else:
- self._data.write('%s%s' % (line.encode('utf-8'), self._newline_char))
+ self._data.write(('%s%s' % (line, self._newline_char)).encode('UTF-8'))
def write_comment(self, text):
self.write_line('<!-- %s -->' % (text, ))