qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 06/51] qapi: pass 'if' condition into QAPISch


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v4 06/51] qapi: pass 'if' condition into QAPISchemaEntity objects
Date: Tue, 06 Feb 2018 11:12:54 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Marc-André Lureau <address@hidden> writes:

> Built-in objects remain unconditional.  Explicitly defined objects
> use the condition specified in the schema.  Implicitly defined
> objects inherit their condition from their users.  For most of them,
> there is exactly one user, so the condition to use is obvious.  The
> exception is the wrapped type's generated for simple union variants,
> which can be shared by any number of simple unions.  The tight
> condition would be the disjunction of the conditions of these simple
> unions.  For now, use wrapped type's condition instead.  Much
> simpler and good enough for now.
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> Reviewed-by: Markus Armbruster <address@hidden>
> ---
>  scripts/qapi.py | 98 
> ++++++++++++++++++++++++++++++++++++++-------------------
>  1 file changed, 66 insertions(+), 32 deletions(-)
>
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 27df0fcf48..8f54dead8d 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -991,8 +991,17 @@ def check_exprs(exprs):
>  # Schema compiler frontend
>  #
>  
> +def listify_cond(ifcond):
> +    if not ifcond:
> +        return []
> +    elif not isinstance(ifcond, list):
> +        return [ifcond]
> +    else:
> +        return ifcond

pylint complains:

    R:995, 4: Unnecessary "else" after "return" (no-else-return)

Matter of taste.  Mine happens to agree with pylint's.  Suggest:

   def listify_cond(ifcond):
       if not ifcond:
           return []
       if not isinstance(ifcond, list):
           return [ifcond]
       return ifcond

> +
> +
>  class QAPISchemaEntity(object):
> -    def __init__(self, name, info, doc):
> +    def __init__(self, name, info, doc, ifcond=None):
>          assert isinstance(name, str)
>          self.name = name
>          # For explicitly defined entities, info points to the (explicit)
[...]



reply via email to

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