From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Mads Ynddal" <mads@ynddal.dk>, "Jiri Pirko" <jiri@resnulli.us>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Eric Blake" <eblake@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Michael Roth" <michael.roth@amd.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Alex Williamson" <alex.williamson@redhat.com>,
"Pavel Dovgalyuk" <pavel.dovgaluk@ispras.ru>,
"Victor Toso de Carvalho" <victortoso@redhat.com>,
"Cédric Le Goater" <clg@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
qemu-block@nongnu.org, "Ani Sinha" <anisinha@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>, "Peter Xu" <peterx@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Markus Armbruster" <armbru@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Lukas Straub" <lukasstraub2@web.de>,
"Igor Mammedov" <imammedo@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Hanna Reitz" <hreitz@redhat.com>,
"Konstantin Kostiuk" <kkostiuk@redhat.com>,
"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
"John Snow" <jsnow@redhat.com>
Subject: [PATCH v2 04/21] docs/qapidoc: delint a tiny portion of the module
Date: Wed, 26 Jun 2024 18:21:10 -0400 [thread overview]
Message-ID: <20240626222128.406106-5-jsnow@redhat.com> (raw)
In-Reply-To: <20240626222128.406106-1-jsnow@redhat.com>
In a forthcoming series that adds a new QMP documentation generator, it
will be helpful to have a linting baseline. However, there's no need to
shuffle around the deck chairs too much, because most of this code will
be removed once that new qapidoc generator (the "transmogrifier") is in
place.
To ease my pain: just turn off the black auto-formatter for most, but
not all, of qapidoc.py. This will help ensure that *new* code follows a
coding standard without bothering too much with cleaning up the existing
code.
Code that I intend to keep is still subject to the delinting beam.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
---
docs/sphinx/qapidoc.py | 62 +++++++++++++++++++++++++-----------------
1 file changed, 37 insertions(+), 25 deletions(-)
diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index 3c0565d0ceb..659e507353a 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -28,26 +28,33 @@
import re
from docutils import nodes
+from docutils.parsers.rst import Directive, directives
from docutils.statemachine import ViewList
-from docutils.parsers.rst import directives, Directive
-from sphinx.errors import ExtensionError
-from sphinx.util.nodes import nested_parse_with_titles
-import sphinx
-from qapi.gen import QAPISchemaVisitor
from qapi.error import QAPIError, QAPISemError
+from qapi.gen import QAPISchemaVisitor
from qapi.schema import QAPISchema
+import sphinx
+from sphinx.errors import ExtensionError
+from sphinx.util.nodes import nested_parse_with_titles
+
# Sphinx up to 1.6 uses AutodocReporter; 1.7 and later
# use switch_source_input. Check borrowed from kerneldoc.py.
-Use_SSI = sphinx.__version__[:3] >= '1.7'
-if Use_SSI:
+USE_SSI = sphinx.__version__[:3] >= "1.7"
+if USE_SSI:
from sphinx.util.docutils import switch_source_input
else:
- from sphinx.ext.autodoc import AutodocReporter
+ from sphinx.ext.autodoc import ( # pylint: disable=no-name-in-module
+ AutodocReporter,
+ )
-__version__ = '1.0'
+__version__ = "1.0"
+
+
+# Disable black auto-formatter until re-enabled:
+# fmt: off
class QAPISchemaGenRSTVisitor(QAPISchemaVisitor):
@@ -441,6 +448,10 @@ def get_document_nodes(self):
return self._top_node.children
+# Turn the black formatter on for the rest of the file.
+# fmt: on
+
+
class QAPISchemaGenDepVisitor(QAPISchemaVisitor):
"""A QAPI schema visitor which adds Sphinx dependencies each module
@@ -448,34 +459,34 @@ class QAPISchemaGenDepVisitor(QAPISchemaVisitor):
that the generated documentation output depends on the input
schema file associated with each module in the QAPI input.
"""
+
def __init__(self, env, qapidir):
self._env = env
self._qapidir = qapidir
def visit_module(self, name):
if name != "./builtin":
- qapifile = self._qapidir + '/' + name
+ qapifile = self._qapidir + "/" + name
self._env.note_dependency(os.path.abspath(qapifile))
super().visit_module(name)
class QAPIDocDirective(Directive):
"""Extract documentation from the specified QAPI .json file"""
+
required_argument = 1
optional_arguments = 1
- option_spec = {
- 'qapifile': directives.unchanged_required
- }
+ option_spec = {"qapifile": directives.unchanged_required}
has_content = False
def new_serialno(self):
"""Return a unique new ID string suitable for use as a node's ID"""
env = self.state.document.settings.env
- return 'qapidoc-%d' % env.new_serialno('qapidoc')
+ return "qapidoc-%d" % env.new_serialno("qapidoc")
def run(self):
env = self.state.document.settings.env
- qapifile = env.config.qapidoc_srctree + '/' + self.arguments[0]
+ qapifile = env.config.qapidoc_srctree + "/" + self.arguments[0]
qapidir = os.path.dirname(qapifile)
try:
@@ -513,13 +524,14 @@ def do_parse(self, rstlist, node):
# plain self.state.nested_parse(), and so we can drop the saving
# of title_styles and section_level that kerneldoc.py does,
# because nested_parse_with_titles() does that for us.
- if Use_SSI:
+ if USE_SSI:
with switch_source_input(self.state, rstlist):
nested_parse_with_titles(self.state, rstlist, node)
else:
save = self.state.memo.reporter
self.state.memo.reporter = AutodocReporter(
- rstlist, self.state.memo.reporter)
+ rstlist, self.state.memo.reporter
+ )
try:
nested_parse_with_titles(self.state, rstlist, node)
finally:
@@ -527,12 +539,12 @@ def do_parse(self, rstlist, node):
def setup(app):
- """ Register qapi-doc directive with Sphinx"""
- app.add_config_value('qapidoc_srctree', None, 'env')
- app.add_directive('qapi-doc', QAPIDocDirective)
+ """Register qapi-doc directive with Sphinx"""
+ app.add_config_value("qapidoc_srctree", None, "env")
+ app.add_directive("qapi-doc", QAPIDocDirective)
- return dict(
- version=__version__,
- parallel_read_safe=True,
- parallel_write_safe=True
- )
+ return {
+ "version": __version__,
+ "parallel_read_safe": True,
+ "parallel_write_safe": True,
+ }
--
2.45.0
next prev parent reply other threads:[~2024-06-26 22:24 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-26 22:21 [PATCH v2 00/21] qapi: convert "Note" and "Example" sections to rST John Snow
2024-06-26 22:21 ` [PATCH v2 01/21] [DO-NOT-MERGE]: Add some ad-hoc linting helpers John Snow
2024-06-26 22:21 ` [PATCH v2 02/21] qapi: linter fixups John Snow
2024-06-26 22:21 ` [PATCH v2 03/21] docs/qapidoc: remove unused intersperse function John Snow
2024-06-27 6:02 ` Markus Armbruster
2024-06-27 6:12 ` John Snow
2024-06-27 10:46 ` Markus Armbruster
2024-06-27 10:43 ` Markus Armbruster
2024-06-26 22:21 ` John Snow [this message]
2024-06-28 7:29 ` [PATCH v2 04/21] docs/qapidoc: delint a tiny portion of the module Markus Armbruster
2024-06-28 14:36 ` John Snow
2024-06-26 22:21 ` [PATCH v2 05/21] qapi/parser: preserve indentation in QAPIDoc sections John Snow
2024-06-27 6:25 ` Markus Armbruster
2024-06-27 6:35 ` John Snow
2024-06-27 10:46 ` Markus Armbruster
2024-06-27 10:43 ` Markus Armbruster
2024-06-26 22:21 ` [PATCH v2 06/21] qapi/parser: fix comment parsing immediately following a doc block John Snow
2024-06-26 22:21 ` [PATCH v2 07/21] docs/qapidoc: fix nested parsing under untagged sections John Snow
2024-06-28 7:54 ` Markus Armbruster
2024-06-28 15:10 ` John Snow
2024-06-28 15:28 ` John Snow
2024-07-01 9:11 ` Markus Armbruster
2024-06-26 22:21 ` [PATCH v2 08/21] qapi: fix non-compliant JSON examples John Snow
2024-06-26 22:21 ` [PATCH v2 09/21] qapi: nail down convention that Errors sections are lists John Snow
2024-06-26 22:21 ` [PATCH v2 10/21] qapi: convert "Note" sections to plain rST John Snow
2024-06-28 9:51 ` Markus Armbruster
2024-06-28 15:44 ` John Snow
2024-07-01 15:08 ` Markus Armbruster
2024-06-26 22:21 ` [PATCH v2 11/21] qapi: update prose in note blocks John Snow
2024-06-26 22:21 ` [PATCH v2 12/21] qapi: add markup to " John Snow
2024-06-26 22:21 ` [PATCH v2 13/21] qapi/parser: don't parse rST markup as section headers John Snow
2024-06-27 7:47 ` Markus Armbruster
2024-06-26 22:21 ` [PATCH v2 14/21] docs/qapidoc: factor out do_parse() John Snow
2024-06-28 13:08 ` Markus Armbruster
2024-06-28 15:16 ` John Snow
2024-06-26 22:21 ` [PATCH v2 15/21] docs/qapidoc: create qmp-example directive John Snow
2024-06-28 13:24 ` Markus Armbruster
2024-06-28 15:24 ` John Snow
2024-06-26 22:21 ` [PATCH v2 16/21] docs/qapidoc: add QMP highlighting to annotated qmp-example blocks John Snow
2024-06-26 22:21 ` [PATCH v2 17/21] docs/sphinx: add CSS styling for qmp-example directive John Snow
2024-06-26 22:21 ` [PATCH v2 18/21] qapi: convert "Example" sections without titles John Snow
2024-06-26 22:21 ` [PATCH v2 19/21] qapi: convert "Example" sections with titles John Snow
2024-06-26 22:21 ` [PATCH v2 20/21] qapi: convert "Example" sections with longer prose John Snow
2024-06-26 22:21 ` [PATCH v2 21/21] qapi: remove "Example" doc section 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=20240626222128.406106-5-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=anisinha@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=clg@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=farosas@suse.de \
--cc=hreitz@redhat.com \
--cc=imammedo@redhat.com \
--cc=jasowang@redhat.com \
--cc=jiri@resnulli.us \
--cc=kkostiuk@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=lukasstraub2@web.de \
--cc=mads@ynddal.dk \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=michael.roth@amd.com \
--cc=mst@redhat.com \
--cc=pavel.dovgaluk@ispras.ru \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanb@linux.vnet.ibm.com \
--cc=stefanha@redhat.com \
--cc=victortoso@redhat.com \
--cc=wangyanan55@huawei.com \
/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).