aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/qapi/common.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
index 4b53f08627..8b6708dbf1 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -16,6 +16,7 @@ import errno
import os
import re
import string
+import sys
from collections import OrderedDict
builtin_types = {
@@ -340,7 +341,10 @@ class QAPISchemaParser(object):
return None
try:
- fobj = open(incl_fname, 'r')
+ if sys.version_info[0] >= 3:
+ fobj = open(incl_fname, 'r', encoding='utf-8')
+ else:
+ fobj = open(incl_fname, 'r')
except IOError as e:
raise QAPISemError(info, '%s: %s' % (e.strerror, incl_fname))
return QAPISchemaParser(fobj, previously_included, info)
@@ -1493,7 +1497,11 @@ class QAPISchemaEvent(QAPISchemaEntity):
class QAPISchema(object):
def __init__(self, fname):
self._fname = fname
- parser = QAPISchemaParser(open(fname, 'r'))
+ if sys.version_info[0] >= 3:
+ f = open(fname, 'r', encoding='utf-8')
+ else:
+ f = open(fname, 'r')
+ parser = QAPISchemaParser(f)
exprs = check_exprs(parser.exprs)
self.docs = parser.docs
self._entity_list = []
@@ -2007,7 +2015,10 @@ 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+')
+ if sys.version_info[0] >= 3:
+ f = open(fd, 'r+', encoding='utf-8')
+ else:
+ f = os.fdopen(fd, 'r+')
text = (self._top(fname) + self._preamble + self._body
+ self._bottom(fname))
oldtext = f.read(len(text) + 1)