From: Markus Armbruster <armbru@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org, Michael Roth <michael.roth@amd.com>,
Markus Armbruster <armbru@redhat.com>
Subject: Re: [PATCH v3] qapi: provide a friendly string representation of QAPI classes
Date: Wed, 18 Oct 2023 14:37:45 +0200 [thread overview]
Message-ID: <87y1g0nm1y.fsf@pond.sub.org> (raw)
In-Reply-To: <20231018120500.2028642-1-berrange@redhat.com> ("Daniel P. Berrangé"'s message of "Wed, 18 Oct 2023 13:05:00 +0100")
Daniel P. Berrangé <berrange@redhat.com> writes:
> If printing a QAPI schema object for debugging we get the classname and
> a hex value for the instance:
>
> <qapi.schema.QAPISchemaEnumType object at 0x7f0ab4c2dad0>
> <qapi.schema.QAPISchemaObjectType object at 0x7f0ab4c2dd90>
> <qapi.schema.QAPISchemaArrayType object at 0x7f0ab4c2df90>
>
> With this change we instead get the classname and the human friendly
> name of the QAPI type instance:
>
> <QAPISchemaEnumType:CpuS390State at 0x7f0ab4c2dad0>
> <QAPISchemaObjectType:CpuInfoS390 at 0x7f0ab4c2dd90>
> <QAPISchemaArrayType:CpuInfoFastList at 0x7f0ab4c2df90>
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>
> Changed in v3:
>
> - Retain the object hex ID in the new representation
>
> scripts/qapi/schema.py | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
> index 231ebf61ba..39c11bb52a 100644
> --- a/scripts/qapi/schema.py
> +++ b/scripts/qapi/schema.py
> @@ -73,6 +73,12 @@ def __init__(self, name: str, info, doc, ifcond=None, features=None):
> self.features = features or []
> self._checked = False
>
> + def __repr__(self):
> + if self.name is not None:
> + return "<%s:%s at 0x%x>" % (type(self).__name__, self.name, id(self))
> + else:
> + return "<%s at 0x%x>" % (type(self).__name__, id(self))
> +
> def c_name(self):
> return c_name(self.name)
Looks good now.
Except I generally prefer
if COND:
SUITE1
else:
SUITE2
over
if not COND:
SUITE2
else:
SUITE1
because it avoids mental double-negation.
Mind if I swap things? Like so:
def __repr__(self):
if self.name is None:
return "<%s at 0x%x>" % (type(self).__name__, id(self))
else:
return "<%s:%s at 0x%x>" % (type(self).__name__,
self.name, id(self))
next prev parent reply other threads:[~2023-10-18 12:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-18 12:05 [PATCH v3] qapi: provide a friendly string representation of QAPI classes Daniel P. Berrangé
2023-10-18 12:37 ` Markus Armbruster [this message]
2023-10-18 13:02 ` Daniel P. Berrangé
2023-10-18 13:20 ` Philippe Mathieu-Daudé
2023-10-19 5:22 ` 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=87y1g0nm1y.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=berrange@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.