qapi: Require ASCII in schema

Python 2 and Python 3 have a wild history of whether strings
default to ascii or unicode, where Python 3 requires checking
isinstance(foo, basestr) to cover all strings, but where that
code is not portable to Python 2.  It's simpler to just state
that we don't care about Unicode strings, and to just always
use the simpler isinstance(foo, str) everywhere.

I'm no python expert, so I'm basing it on this conversation:
https://lists.gnu.org/archive/html/qemu-devel/2014-09/msg05278.html

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
Eric Blake 2015-05-04 09:05:02 -06:00 committed by Markus Armbruster
parent cb17f79eef
commit fe2a9303c9

View file

@ -2,7 +2,7 @@
# QAPI helper library # QAPI helper library
# #
# Copyright IBM, Corp. 2011 # Copyright IBM, Corp. 2011
# Copyright (c) 2013 Red Hat Inc. # Copyright (c) 2013-2015 Red Hat Inc.
# #
# Authors: # Authors:
# Anthony Liguori <aliguori@us.ibm.com> # Anthony Liguori <aliguori@us.ibm.com>
@ -354,7 +354,7 @@ def parse_schema(input_file):
return exprs return exprs
def parse_args(typeinfo): def parse_args(typeinfo):
if isinstance(typeinfo, basestring): if isinstance(typeinfo, str):
struct = find_struct(typeinfo) struct = find_struct(typeinfo)
assert struct != None assert struct != None
typeinfo = struct['data'] typeinfo = struct['data']