From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Ani Sinha" <anisinha@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"John Snow" <jsnow@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Eric Blake" <eblake@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@mailo.com>,
"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
linux-edac@vger.kernel.org, "Cleber Rosa" <crosa@redhat.com>
Subject: [PATCH v3 05/16] qapi/docs: make remaining subsection members "private"
Date: Tue, 2 Jun 2026 23:21:50 -0400 [thread overview]
Message-ID: <20260603032201.993015-6-jsnow@redhat.com> (raw)
In-Reply-To: <20260603032201.993015-1-jsnow@redhat.com>
These fields are used to provide error checking and internal logistics
and should not be used by a user of the library to directly access
documentation sections, so make them private.
The "since" field alone is left public, as the qapidoc generator does
use this field to pull that section out of the regular flow of the
document.
Signed-off-by: John Snow <jsnow@redhat.com>
---
scripts/qapi/parser.py | 48 +++++++++++++++++++++---------------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py
index dcc58170bd5..da4756a7424 100644
--- a/scripts/qapi/parser.py
+++ b/scripts/qapi/parser.py
@@ -733,17 +733,17 @@ def __init__(self, info: QAPISourceInfo, symbol: Optional[str] = None):
QAPIDoc.Section(info, QAPIDoc.Kind.PLAIN)
]
# dicts mapping parameter/feature names to their description
- self.args: Dict[str, QAPIDoc.ArgSection] = {}
- self.features: Dict[str, QAPIDoc.ArgSection] = {}
+ self._args: Dict[str, QAPIDoc.ArgSection] = {}
+ self._features: Dict[str, QAPIDoc.ArgSection] = {}
# a command's "Returns" and "Errors" section
- self.returns: Optional[QAPIDoc.Section] = None
- self.errors: Optional[QAPIDoc.Section] = None
+ self._returns: Optional[QAPIDoc.Section] = None
+ self._errors: Optional[QAPIDoc.Section] = None
# "Since" section
self.since: Optional[QAPIDoc.Section] = None
@property
def has_features(self) -> bool:
- return bool(self.features)
+ return bool(self._features)
def end(self) -> None:
for section in self.all_sections:
@@ -775,15 +775,15 @@ def new_tagged_section(
) -> None:
section = self.Section(info, kind)
if kind == QAPIDoc.Kind.RETURNS:
- if self.returns:
+ if self._returns:
raise QAPISemError(
info, "duplicated '%s' section" % kind)
- self.returns = section
+ self._returns = section
elif kind == QAPIDoc.Kind.ERRORS:
- if self.errors:
+ if self._errors:
raise QAPISemError(
info, "duplicated '%s' section" % kind)
- self.errors = section
+ self._errors = section
elif kind == QAPIDoc.Kind.SINCE:
if self.since:
raise QAPISemError(
@@ -807,16 +807,16 @@ def _new_description(
desc[name] = section
def new_argument(self, info: QAPISourceInfo, name: str) -> None:
- self._new_description(info, name, QAPIDoc.Kind.MEMBER, self.args)
+ self._new_description(info, name, QAPIDoc.Kind.MEMBER, self._args)
def new_feature(self, info: QAPISourceInfo, name: str) -> None:
- self._new_description(info, name, QAPIDoc.Kind.FEATURE, self.features)
+ self._new_description(info, name, QAPIDoc.Kind.FEATURE, self._features)
def append_line(self, line: str) -> None:
self.all_sections[-1].append_line(line)
def connect_member(self, member: 'QAPISchemaMember') -> None:
- if member.name not in self.args:
+ if member.name not in self._args:
assert member.info
if self.symbol not in member.info.pragma.documentation_exceptions:
raise QAPISemError(member.info,
@@ -827,7 +827,7 @@ def connect_member(self, member: 'QAPISchemaMember') -> None:
section = QAPIDoc.ArgSection(
self.info, QAPIDoc.Kind.MEMBER, member.name)
- self.args[member.name] = section
+ self._args[member.name] = section
# Determine where to insert stub doc - it should go at the
# end of the members section(s), if any. Note that index 0
@@ -839,14 +839,14 @@ def connect_member(self, member: 'QAPISchemaMember') -> None:
index += 1
self.all_sections.insert(index, section)
- self.args[member.name].connect(member)
+ self._args[member.name].connect(member)
def connect_feature(self, feature: 'QAPISchemaFeature') -> None:
- if feature.name not in self.features:
+ if feature.name not in self._features:
raise QAPISemError(feature.info,
"feature '%s' lacks documentation"
% feature.name)
- self.features[feature.name].connect(feature)
+ self._features[feature.name].connect(feature)
def ensure_returns(self, info: QAPISourceInfo) -> None:
@@ -887,18 +887,18 @@ def _insert_near_kind(
def check_expr(self, expr: QAPIExpression) -> None:
if 'command' in expr:
- if self.returns and 'returns' not in expr:
+ if self._returns and 'returns' not in expr:
raise QAPISemError(
- self.returns.info,
+ self._returns.info,
"'Returns' section, but command doesn't return anything")
else:
- if self.returns:
+ if self._returns:
raise QAPISemError(
- self.returns.info,
+ self._returns.info,
"'Returns' section is only valid for commands")
- if self.errors:
+ if self._errors:
raise QAPISemError(
- self.errors.info,
+ self._errors.info,
"'Errors' section is only valid for commands")
def check(self) -> None:
@@ -918,5 +918,5 @@ def check_args_section(
"do" if len(bogus) > 1 else "does"
))
- check_args_section(self.args, 'member')
- check_args_section(self.features, 'feature')
+ check_args_section(self._args, 'member')
+ check_args_section(self._features, 'feature')
--
2.54.0
next prev parent reply other threads:[~2026-06-03 3:22 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-03 3:21 [PATCH v3 00/16] qapi: add formal "intro" section John Snow
2026-06-03 3:21 ` [PATCH v3 01/16] python: temporarily restrict max mypy version John Snow
2026-06-03 3:21 ` [PATCH v3 02/16] tests/qapi: generate output in source order John Snow
2026-06-03 3:21 ` [PATCH v3 03/16] qapi/docs: remove unused QAPIDoc subsection members John Snow
2026-06-03 3:21 ` [PATCH v3 04/16] qapi/docs: add has_features property John Snow
2026-06-03 3:21 ` John Snow [this message]
2026-06-03 3:21 ` [PATCH v3 06/16] qapi/docs: fix comment phrasing John Snow
2026-06-03 3:21 ` [PATCH v3 07/16] qapi/docs: add "Intro" section John Snow
2026-06-03 3:21 ` [PATCH v3 08/16] qapi/parser: move _insert_near_kind() method John Snow
2026-06-03 3:21 ` [PATCH v3 09/16] qapi/docs: adjust stub member insertion algorithm John Snow
2026-06-03 11:27 ` Markus Armbruster
2026-06-03 3:21 ` [PATCH v3 10/16] qapi/docs: remove implicit Plain section John Snow
2026-06-03 3:21 ` [PATCH v3 11/16] qapi/docs: add rendering for INTRO sections John Snow
2026-06-03 3:21 ` [PATCH v3 12/16] qapi/docs: add "Intro" section parsing John Snow
2026-06-03 3:21 ` [PATCH v3 13/16] qapi: convert intro sections for accelerator.json John Snow
2026-06-03 3:21 ` [PATCH v3 14/16] qapi: convert intro sections for acpi-hest.json John Snow
2026-06-03 3:22 ` [PATCH v3 15/16] qapi: convert intro sections for acpi.json John Snow
2026-06-03 3:22 ` [PATCH v3 16/16] qapi: convert intro sections for audio.json John Snow
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=20260603032201.993015-6-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=anisinha@redhat.com \
--cc=armbru@redhat.com \
--cc=crosa@redhat.com \
--cc=eblake@redhat.com \
--cc=imammedo@redhat.com \
--cc=kraxel@redhat.com \
--cc=linux-edac@vger.kernel.org \
--cc=marcandre.lureau@redhat.com \
--cc=mchehab+huawei@kernel.org \
--cc=michael.roth@amd.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=philmd@mailo.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.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