From b18ac34baa3ae095efec0ad888b1b624f4d234ed Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Mon, 19 Feb 2018 14:18:46 -0500 Subject: [PATCH] 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 Backports commit fe2a9303c9e511462f662a415c2e9d2defe9b7ca from qemu --- qemu/scripts/qapi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qemu/scripts/qapi.py b/qemu/scripts/qapi.py index e99fda09..496f3be0 100644 --- a/qemu/scripts/qapi.py +++ b/qemu/scripts/qapi.py @@ -2,7 +2,7 @@ # QAPI helper library # # Copyright IBM, Corp. 2011 -# Copyright (c) 2013 Red Hat Inc. +# Copyright (c) 2013-2015 Red Hat Inc. # # Authors: # Anthony Liguori @@ -676,7 +676,7 @@ def parse_schema(input_file): return exprs def parse_args(typeinfo): - if isinstance(typeinfo, basestring): + if isinstance(typeinfo, str): struct = find_struct(typeinfo) assert struct != None typeinfo = struct['data']