All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: qemu-devel@nongnu.org,  Michael Roth <michael.roth@amd.com>
Subject: Re: [PATCH v2 1/7] qapi/expr: Split check_expr out from check_exprs
Date: Wed, 08 Feb 2023 17:08:50 +0100	[thread overview]
Message-ID: <87v8kcuokt.fsf@pond.sub.org> (raw)
In-Reply-To: <20230208021306.870657-2-jsnow@redhat.com> (John Snow's message of "Tue, 7 Feb 2023 21:13:00 -0500")

John Snow <jsnow@redhat.com> writes:

> Primarily, this reduces a nesting level of a particularly long
> block. It's mostly code movement, but a new docstring is created.
>
> It also has the effect of creating a fairly convenient "catch point" in
> check_exprs for exception handling without making the nesting level even
> worse.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
>
> ---
>
> This patch was originally written as part of my effort to factor out
> QAPISourceInfo from this file by having expr.py raise a simple
> exception, then catch and wrap it at the higher level.
>
> This series doesn't do that anymore, but reducing the nesting level
> still seemed subjectively nice. It's not crucial.

Drawback: git-blame can't see through the move, and blames *you* for
that.

> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  scripts/qapi/expr.py | 179 +++++++++++++++++++++++--------------------
>  1 file changed, 95 insertions(+), 84 deletions(-)
>
> diff --git a/scripts/qapi/expr.py b/scripts/qapi/expr.py
> index 5a1782b57ea..d01543006d8 100644
> --- a/scripts/qapi/expr.py
> +++ b/scripts/qapi/expr.py
> @@ -595,6 +595,99 @@ def check_event(expr: _JSONObject, info: QAPISourceInfo) -> None:
>      check_type(args, info, "'data'", allow_dict=not boxed)
>  
>  
> +def check_expr(expr_elem: _JSONObject) -> None:
> +    """
> +    Validate and normalize a parsed QAPI schema expression.
> +
> +    :param expr_elem: The parsed expression to normalize and validate.
> +
> +    :raise QAPISemError: When this expression fails validation.
> +    :return: None, ``expr`` is normalized in-place as needed.

``expr`` is not defined here.  Suggest ", the expression is normalized".

> +    """
> +    # Expression
> +    assert isinstance(expr_elem['expr'], dict)
> +    for key in expr_elem['expr'].keys():
> +        assert isinstance(key, str)
> +    expr: _JSONObject = expr_elem['expr']

[...]



  reply	other threads:[~2023-02-08 16:10 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-08  2:12 [PATCH v2 0/7] qapi: static typing conversion, pt5c John Snow
2023-02-08  2:13 ` [PATCH v2 1/7] qapi/expr: Split check_expr out from check_exprs John Snow
2023-02-08 16:08   ` Markus Armbruster [this message]
2023-02-08  2:13 ` [PATCH v2 2/7] qapi/parser.py: add ParsedExpression type John Snow
2023-02-08 16:17   ` Markus Armbruster
2023-02-08 18:01     ` John Snow
2023-02-08  2:13 ` [PATCH v2 3/7] qapi/expr: Use TopLevelExpr where appropriate John Snow
2023-02-08 16:22   ` Markus Armbruster
2023-02-08  2:13 ` [PATCH v2 4/7] qapi/expr: add typing workaround for AbstractSet John Snow
2023-02-08  2:13 ` [PATCH v2 5/7] qapi/parser: [RFC] add QAPIExpression John Snow
2023-02-08 16:28   ` Markus Armbruster
2023-02-08 17:17     ` John Snow
2023-02-08 21:05       ` Markus Armbruster
2023-02-09  6:57   ` Markus Armbruster
2023-02-08  2:13 ` [PATCH v2 6/7] qapi: remove _JSONObject John Snow
2023-02-08  2:13 ` [PATCH v2 7/7] qapi: remove JSON value FIXME John Snow
2023-02-08 16:31 ` [PATCH v2 0/7] qapi: static typing conversion, pt5c Markus Armbruster
2023-02-08 17:02   ` John Snow
2023-02-09  7:08     ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v8kcuokt.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.