qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 08/19] qapi: Better error messages for bad ex


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v4 08/19] qapi: Better error messages for bad expressions
Date: Wed, 24 Sep 2014 13:14:20 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Kevin Wolf <address@hidden> writes:

> Am 24.09.2014 um 09:34 hat Markus Armbruster geschrieben:
>> Eric Blake <address@hidden> writes:
>> 
>> > On 09/23/2014 08:56 AM, Markus Armbruster wrote:
>> >> Eric Blake <address@hidden> writes:
>> >>> Add check_keys to cover these situations, and update testcases to
>> >>> match.  A couple other tests (enum-missing-data, indented-expr) had
>> >>> to change since the validation added here occurs so early.
>> >>>
>> >>> While valid .json files won't trigger any of these cases, we might
>> >>> as well be nicer to developers that make a typo while trying to add
>> >>> new QAPI code.
>> >>>
>> >>> Signed-off-by: Eric Blake <address@hidden>
>> >> 
>> >
>> >>> +def check_keys(expr_elem, meta, required, optional=[]):
>> >>> +    expr = expr_elem['expr']
>> >>> +    info = expr_elem['info']
>> >>> +    name = expr[meta]
>> >> 
>> >> Caller ensures expr[meta] exists.  Okay.
>> >> 
>> >>> +    if not isinstance(name, basestring):
>> >> 
>> >> I'm a Python noob: why basestring and not str?
>> >
>> > Me too.  No clue.  Copy and paste from existing code.
>> > http://git.qemu.org/?p=qemu.git;a=blob;f=scripts/qapi.py;h=77d46aa;hb=769188d3b#l361
>> 
>> Yes.  It's our only use of basestring.  Other places use isinstance(FOO,
>> str).
>> 
>> The basestring use comes from Kevin's commit b35284e.  Kevin, why
>> basestring and not str?
>
> Do I look as if I knew what I'm doing when I write Python code? :-)
>
> Apparently basestring is the superclass for ASCII and Unicode strings. I
> seem to dimly remember that I did indeed get a Unicode string somewhere
> (even though probably no non-ASCII characters in it) and it caused
> trouble. Might well have been here.

Aha.  These links apply:

https://stackoverflow.com/questions/11301138/how-to-check-if-variable-is-string-with-python-2-and-3-compatibility
https://en.wikipedia.org/wiki/File:Pieter_Bruegel_the_Elder_%281568%29_The_Blind_Leading_the_Blind.jpg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]