From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: corbet@lwn.net, gregkh@linuxfoundation.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC v2 17/38] scripts/get_abi.py: use an interactor for ReST output
Date: Wed, 29 Jan 2025 15:06:15 +0100 [thread overview]
Message-ID: <20250129150615.1c256acb@foz.lan> (raw)
In-Reply-To: <2d4d3fd1-5fe2-4d18-9085-73f9ff930c2d@gmail.com>
Em Wed, 29 Jan 2025 20:04:42 +0900
Akira Yokosawa <akiyks@gmail.com> escreveu:
> Hi,
>
> Mauro Carvalho Chehab wrote:
>
> > Instead of printing all results line per line, use an interactor
> > to return each variable as a separate message.
> >
> > This won't change much when using it via command line, but it
> > will help Sphinx integration by providing an interactor that
> > could be used there to handle ABI symbol by symbol.
> >
> > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> > ---
> > scripts/get_abi.py | 52 ++++++++++++++++++++++++++--------------------
> > 1 file changed, 29 insertions(+), 23 deletions(-)
> >
> > diff --git a/scripts/get_abi.py b/scripts/get_abi.py
> > index 73613fb29c1c..2aec1f9dc5aa 100755
> > --- a/scripts/get_abi.py
> > +++ b/scripts/get_abi.py
> [...]
> > @@ -470,9 +472,9 @@ class AbiParser:
> >
> > if cur_part and cur_part != part:
> > part = cur_part
> > - print(f"{part}\n{"-" * len(part)}\n")
> > + msg += f"{part}\n{"-" * len(part)}\n\n"
> >
> > - print(f".. _{key}:\n")
> > + msg += f".. _{key}:\n\n"
> >
> > max_len = 0
> > for i in range(0, len(names)): # pylint: disable=C0200
> [...]
>
> Testing under Ubuntu 22.04, where distro python3 is 3.10.12 and
> distro Sphinx is 4.3.2, I get this exception by running "make htmldocs":
>
> Exception occurred:
> File ".../linux/Documentation/sphinx/kernel_abi.py", line 48, in <module>
> from get_abi import AbiParser
> File ".../linux/scripts/get_abi.py", line 525
> msg += f"{part}\n{"-" * len(part)}\n\n"
> ^
> SyntaxError: f-string: expecting '}'
>
> , which is introduced in the above hunk, I guess.
>
> You can install Sphinx 8.1.3 on top of python3 3.10.12 using venv.
> I get the same exception there.
>
> Your change works fine against Ubuntu 24.04, whose distro python3 is 3.12.3.
>
> I have not tested against python3 3.11.x.
>
> It would be better to keep compatible with >= python 3.10.x if at all
> possible.
Thanks for checking it!
I was aiming to make it compatible with 3.6. Yet, it seems that f-string
support is very limited on early versions. The enclosed diff will make
it backward-compatible with Python 3.6.
Thanks,
Mauro
diff --git a/scripts/get_abi.py b/scripts/get_abi.py
index 543bed397c8c..e6e94f721fff 100755
--- a/scripts/get_abi.py
+++ b/scripts/get_abi.py
@@ -522,7 +522,7 @@ class AbiParser:
if cur_part and cur_part != part:
part = cur_part
- msg += f"{part}\n{"-" * len(part)}\n\n"
+ msg += part + "\n"+ "-" * len(part) +"\n\n"
msg += f".. _{key}:\n\n"
@@ -546,7 +546,7 @@ class AbiParser:
msg += f"Defined on file :ref:`{base} <{ref[1]}>`\n\n"
if wtype == "File":
- msg += f"{names[0]}\n{"-" * len(names[0])}\n\n"
+ msg += names[0] +"\n" + "-" * len(names[0]) +"\n\n"
desc = v.get("description")
if not desc and wtype != "File":
@@ -570,7 +570,8 @@ class AbiParser:
users = v.get("users")
if users and users.strip(" \t\n"):
- msg += f"Users:\n\t{users.strip("\n").replace('\n', '\n\t')}\n\n"
+ users = users.strip("\n").replace('\n', '\n\t')
+ msg += f"Users:\n\t{users}\n\n"
ln = v.get("line_no", 1)
@@ -596,7 +597,9 @@ class AbiParser:
elif len(lines) == 1:
f.append(f"{fname}:{lines[0]}")
else:
- f.append(f"{fname} lines {", ".join(str(x) for x in lines)}")
+ m = fname + "lines "
+ m += ", ".join(str(x) for x in lines)
+ f.append(m)
self.log.warning("%s is defined %d times: %s", what, len(f), "; ".join(f))
@@ -644,10 +647,11 @@ class AbiParser:
if users:
print(f"Users:\t\t\t{users}")
- print(f"Defined on file{'s'[:len(files) ^ 1]}:\t{", ".join(files)}")
+ print("Defined on file(s):\t" + ", ".join(files))
if desc:
- print(f"\n{desc.strip("\n")}\n")
+ desc = desc.strip("\n")
+ print(f"\n{desc}\n")
if not found_keys:
print(f"Regular expression /{expr}/ not found.")
next prev parent reply other threads:[~2025-01-29 14:06 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-28 0:05 [RFC v2 00/38] Improve ABI documentation generation Mauro Carvalho Chehab
2025-01-28 0:05 ` [f2fs-dev] " Mauro Carvalho Chehab via Linux-f2fs-devel
2025-01-28 0:05 ` [RFC v2 01/38] docs: power: video.rst: fix a footnote reference Mauro Carvalho Chehab
2025-01-28 22:10 ` Jonathan Corbet
2025-01-28 0:05 ` [RFC v2 02/38] docs: media: ipu3: fix two footnote references Mauro Carvalho Chehab
2025-01-28 0:05 ` [RFC v2 03/38] docs: block: ublk.rst: remove a reference from a dropped text Mauro Carvalho Chehab
2025-01-28 0:05 ` [RFC v2 04/38] docs: sphinx: remove kernellog.py file Mauro Carvalho Chehab
2025-01-28 0:05 ` [RFC v2 05/38] docs: sphinx/kernel_abi: adjust coding style Mauro Carvalho Chehab
2025-02-04 17:19 ` Jonathan Corbet
2025-01-28 0:05 ` [RFC v2 06/38] docs: admin-guide: abi: add SPDX tags to ABI files Mauro Carvalho Chehab
2025-01-28 0:05 ` [RFC v2 07/38] ABI: sysfs-class-rfkill: fix kernelversion tags Mauro Carvalho Chehab
2025-01-28 0:05 ` [RFC v2 08/38] ABI: sysfs-bus-coresight-*: " Mauro Carvalho Chehab
2025-02-04 10:30 ` Suzuki K Poulose
2025-01-28 0:05 ` [RFC v2 09/38] ABI: sysfs-driver-dma-idxd: fix date tags Mauro Carvalho Chehab
2025-01-28 0:05 ` [RFC v2 10/38] ABI: sysfs-fs-f2fs: " Mauro Carvalho Chehab
2025-01-28 0:05 ` [f2fs-dev] " Mauro Carvalho Chehab via Linux-f2fs-devel
2025-01-28 0:06 ` [RFC v2 11/38] ABI: sysfs-power: fix a what tag Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 12/38] scripts/documentation-file-ref-check: don't check perl/python scripts Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 13/38] scripts/get_abi.py: add a Python tool to generate ReST output Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 14/38] scripts/get_abi.py: add support for symbol search Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 15/38] docs: use get_abi.py for ABI generation Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 16/38] scripts/get_abi.py: optimize parse_abi() function Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 17/38] scripts/get_abi.py: use an interactor for ReST output Mauro Carvalho Chehab
2025-01-29 11:04 ` Akira Yokosawa
2025-01-29 14:06 ` Mauro Carvalho Chehab [this message]
2025-01-28 0:06 ` [RFC v2 18/38] docs: sphinx/kernel_abi: use AbiParser directly Mauro Carvalho Chehab
2025-01-28 22:37 ` Jonathan Corbet
2025-01-29 0:43 ` Mauro Carvalho Chehab
2025-02-02 14:56 ` Mauro Carvalho Chehab
2025-02-04 17:12 ` Jonathan Corbet
2025-02-10 7:27 ` Mauro Carvalho Chehab
2025-02-10 14:40 ` Jonathan Corbet
2025-02-10 16:03 ` Mauro Carvalho Chehab
2025-02-16 12:53 ` Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 19/38] docs: sphinx/kernel_abi: reduce buffer usage for ABI messages Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 20/38] docs: sphinx/kernel_abi: properly split lines Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 21/38] scripts/get_abi.pl: Add filtering capabilities to rest output Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 22/38] scripts/get_abi.pl: add support to parse ABI README file Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 23/38] docs: sphinx/kernel_abi: parse ABI files only once Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 24/38] docs: admin-guide/abi: split files from symbols Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 25/38] docs: sphinx/automarkup: add cross-references for ABI Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 26/38] docs: sphinx/kernel_abi: avoid warnings during Sphinx module init Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 27/38] scripts/get_abi.py: Rename title name for ABI files Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 28/38] docs: media: Allow creating cross-references for RC ABI Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 29/38] docs: thunderbolt: Allow creating cross-references for ABI Mauro Carvalho Chehab
2025-01-28 11:27 ` Mika Westerberg
2025-01-28 0:06 ` [RFC v2 30/38] docs: arm: asymmetric-32bit: " Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 31/38] docs: arm: generic-counter: " Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 32/38] docs: iio: Allow creating cross-references ABI Mauro Carvalho Chehab
2025-01-28 18:27 ` Jonathan Cameron
2025-01-28 0:06 ` [RFC v2 33/38] docs: networking: Allow creating cross-references statistics ABI Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 34/38] docs: submit-checklist: Allow creating cross-references for ABI README Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 35/38] docs: translations: " Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 36/38] docs: ABI: drop two duplicate symbols Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 37/38] scripts/get_abi.py: add support for undefined ABIs Mauro Carvalho Chehab
2025-01-28 0:06 ` [RFC v2 38/38] scripts/get_abi.pl: drop now obsoleted script Mauro Carvalho Chehab
2025-01-28 22:42 ` [RFC v2 00/38] Improve ABI documentation generation Jonathan Corbet
2025-01-28 22:42 ` [f2fs-dev] " Jonathan Corbet
2025-01-29 1:45 ` Mauro Carvalho Chehab
2025-01-29 1:45 ` [f2fs-dev] " Mauro Carvalho Chehab via Linux-f2fs-devel
2025-01-29 14:22 ` Mauro Carvalho Chehab
2025-01-29 14:22 ` [f2fs-dev] " Mauro Carvalho Chehab via Linux-f2fs-devel
2025-01-29 15:41 ` Mauro Carvalho Chehab
2025-01-29 15:41 ` [f2fs-dev] " Mauro Carvalho Chehab via Linux-f2fs-devel
2025-01-29 15:58 ` Jonathan Corbet
2025-01-29 15:58 ` [f2fs-dev] " Jonathan Corbet
2025-01-29 16:19 ` Mauro Carvalho Chehab
2025-01-29 16:19 ` [f2fs-dev] " Mauro Carvalho Chehab via Linux-f2fs-devel
2025-03-27 21:58 ` patchwork-bot+f2fs
2025-03-27 21:58 ` patchwork-bot+f2fs--- via Linux-f2fs-devel
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=20250129150615.1c256acb@foz.lan \
--to=mchehab+huawei@kernel.org \
--cc=akiyks@gmail.com \
--cc=corbet@lwn.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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.