From: John Snow <jsnow@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Michael Roth <michael.roth@amd.com>, qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [PATCH] scripts/qapi: minor delinting
Date: Thu, 10 Feb 2022 12:17:52 -0500 [thread overview]
Message-ID: <CAFn=p-YSAe7Q+usWEv4b7UciYjm5iso9LH-pd-VbDoV196PfvQ@mail.gmail.com> (raw)
In-Reply-To: <87leyibtqz.fsf@pond.sub.org>
On Thu, Feb 10, 2022 at 10:56 AM Markus Armbruster <armbru@redhat.com> wrote:
>
> John Snow <jsnow@redhat.com> writes:
>
> > Just cleaning up some cobwebs.
> >
> > Signed-off-by: John Snow <jsnow@redhat.com>
> > ---
> > scripts/qapi/commands.py | 2 +-
> > scripts/qapi/events.py | 6 +++---
> > scripts/qapi/types.py | 6 +++++-
> > scripts/qapi/visit.py | 6 +++++-
> > 4 files changed, 14 insertions(+), 6 deletions(-)
> >
> > diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py
> > index 869d799ed2..38ca38a7b9 100644
> > --- a/scripts/qapi/commands.py
> > +++ b/scripts/qapi/commands.py
> > @@ -25,8 +25,8 @@
> > QAPIGenC,
> > QAPISchemaModularCVisitor,
> > build_params,
> > - ifcontext,
> > gen_special_features,
> > + ifcontext,
> > )
> > from .schema import (
> > QAPISchema,
> > diff --git a/scripts/qapi/events.py b/scripts/qapi/events.py
> > index 27b44c49f5..8edf43d8da 100644
> > --- a/scripts/qapi/events.py
> > +++ b/scripts/qapi/events.py
> > @@ -109,15 +109,15 @@ def gen_event_send(name: str,
> > if not boxed:
> > ret += gen_param_var(arg_type)
> >
> > - for f in features:
> > - if f.is_special():
> > + for feat in features:
> > + if feat.is_special():
> > ret += mcgen('''
> >
> > if (compat_policy.%(feat)s_output == COMPAT_POLICY_OUTPUT_HIDE) {
> > return;
> > }
> > ''',
> > - feat=f.name)
> > + feat=feat.name)
> >
> > ret += mcgen('''
> >
>
> Meh. Expressive variable names are good when there's something useful
> to express. But what's the added value in such a simple, obvious loop?
>
> Besides:
>
> $ git-grep 'for . in' scripts/qapi | wc -l
> 42
> $ git-grep -E 'for [A-Za-z0-9]{2,} in' scripts/qapi | wc -l
> 31
>
> > diff --git a/scripts/qapi/types.py b/scripts/qapi/types.py
> > index 3013329c24..477d027001 100644
> > --- a/scripts/qapi/types.py
> > +++ b/scripts/qapi/types.py
> > @@ -16,7 +16,11 @@
> > from typing import List, Optional
> >
> > from .common import c_enum_const, c_name, mcgen
> > -from .gen import QAPISchemaModularCVisitor, gen_special_features, ifcontext
> > +from .gen import (
> > + QAPISchemaModularCVisitor,
> > + gen_special_features,
> > + ifcontext,
> > +)
> > from .schema import (
> > QAPISchema,
> > QAPISchemaEnumMember,
> > diff --git a/scripts/qapi/visit.py b/scripts/qapi/visit.py
> > index e13bbe4292..380fa197f5 100644
> > --- a/scripts/qapi/visit.py
> > +++ b/scripts/qapi/visit.py
> > @@ -21,7 +21,11 @@
> > indent,
> > mcgen,
> > )
> > -from .gen import QAPISchemaModularCVisitor, gen_special_features, ifcontext
> > +from .gen import (
> > + QAPISchemaModularCVisitor,
> > + gen_special_features,
> > + ifcontext,
> > +)
> > from .schema import (
> > QAPISchema,
> > QAPISchemaEnumMember,
>
> Everything else, gladly
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
The problem with whitelisting single-letter variable names is that
it's done on a per-name basis, like allowing "x, y, z" or "i, j, k". I
could whitelist "f", "m", etc but there's no way to whitelist "for f
in features" or "for m im members" ... So admittedly, I just stuck
with the default, even though it's a little annoying. It's what I use
for python/, and I had previously used it for ./scripts/qapi/, so I
was just carrying on.
In general: I like the idea of forbidding single-letter variable names
because I prefer things to be more verbose than terse as a habit. In
practice: yeah, it's hard to strictly defend any one change as
obviously superior. I preferred "for feature in features", which you
did not like because the plural wasn't distinct enough (fair!), so I
started using "for feat in features" as a compromise.
If on third thought you don't like any of this, we can change course,
but then maybe we should also undo the other changes we already
checked in. (At this point, I feel like it's maybe less churn to
continue on the path I have been, but... you're the boss here.)
--js
next prev parent reply other threads:[~2022-02-10 18:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-04 22:52 [PATCH] scripts/qapi: minor delinting John Snow
2022-02-10 15:56 ` Markus Armbruster
2022-02-10 17:17 ` John Snow [this message]
2022-02-11 11:58 ` Markus Armbruster
2022-02-11 17:11 ` John Snow
2022-02-11 18:36 ` John Snow
2022-02-14 13:48 ` 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='CAFn=p-YSAe7Q+usWEv4b7UciYjm5iso9LH-pd-VbDoV196PfvQ@mail.gmail.com' \
--to=jsnow@redhat.com \
--cc=armbru@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).