@@ -258,7 +258,7 @@ class QAPISchemaParser(object):
self.fname = fp.name
previously_included.append(os.path.abspath(fp.name))
self.incl_info = incl_info
- self.src = fp.read()
+ self.src = fp.read().decode("UTF-8")
if self.src == '' or self.src[-1] != '\n':
self.src += '\n'
self.cursor = 0
@@ -340,7 +340,7 @@ class QAPISchemaParser(object):
return None
try:
- fobj = open(incl_fname, 'r')
+ fobj = open(incl_fname, 'rb')
except IOError as e:
raise QAPISemError(info, '%s: %s' % (e.strerror, incl_fname))
return QAPISchemaParser(fobj, previously_included, info)
@@ -1492,7 +1492,7 @@ class QAPISchemaEvent(QAPISchemaEntity):
class QAPISchema(object):
def __init__(self, fname):
self._fname = fname
- parser = QAPISchemaParser(open(fname, 'r'))
+ parser = QAPISchemaParser(open(fname, 'rb'))
exprs = check_exprs(parser.exprs)
self.docs = parser.docs
self._entity_list = []
@@ -2006,14 +2006,14 @@ class QAPIGen(object):
if e.errno != errno.EEXIST:
raise
fd = os.open(pathname, os.O_RDWR | os.O_CREAT, 0o666)
- f = os.fdopen(fd, 'r+')
+ f = os.fdopen(fd, 'r+b')
text = (self._top(fname) + self._preamble + self._body
+ self._bottom(fname))
- oldtext = f.read(len(text) + 1)
+ oldtext = f.read(len(text) + 1).decode("UTF-8")
if text != oldtext:
f.seek(0)
f.truncate(0)
- f.write(text)
+ f.write(text.encode("UTF-8"))
f.close()