[PATCH v2 0/3] Convert get_feat to Python

Mauro Carvalho Chehab posted 3 patches 1 week, 6 days ago
Documentation/sphinx/kernel_feat.py     |  24 +-
tools/docs/get_feat.pl                  | 641 ------------------------
tools/docs/get_feat.py                  | 225 +++++++++
tools/lib/python/feat/parse_features.py | 494 ++++++++++++++++++
4 files changed, 732 insertions(+), 652 deletions(-)
delete mode 100755 tools/docs/get_feat.pl
create mode 100755 tools/docs/get_feat.py
create mode 100755 tools/lib/python/feat/parse_features.py
[PATCH v2 0/3] Convert get_feat to Python
Posted by Mauro Carvalho Chehab 1 week, 6 days ago
Hi Jon,

That's the final series to complete the migration of documentation
build: it converts get_feat from Perl to Python.

V2 is technically identical to v1: the only difference is that it
now uses tools/lib/python/feat to store the library logic.

With that, no Sphinx in-kernel extensions use fork anymore to call
ancillary scripts: everything is now importing Python methods
directly from the libraries.

As we don't have a definition yet for the location of the Python
libraries yet, I opted to place the parse features library inside
tools/docs/lib. It shouldn't be hard to move it elsewhere once we
define a better place for them.

There's nothing special on this conversion: it is a direct translation,
almost bug-compatible with the original version (*).

(*) I did solve two or three caveats on patch 1.

Most of the complexity of the script relies at the logic to produce
ReST tables. I do have here on my internal scripts a (somewhat) generic
formatter for ReST tables in Python. I was tempted to convert the logic
to use it, but, as this could cause regressions, I opted to not do it
right now, mainly because the matrix table logic is complex. Also,
I'm tempted to modify a little bit the output there, but extra tests
are required to see if PDF output would work with complex tables (I
remember I had a problem with that in the past). So, I'm postponing
such extra cleanup.

Mauro Carvalho Chehab (3):
  tools/docs/get_feat.py: convert get_feat.pl to Python
  Documentation/sphinx/kernel_feat.py: use class directly
  get_feat.pl: remove it, as it got replaced by get_feat.py

 Documentation/sphinx/kernel_feat.py     |  24 +-
 tools/docs/get_feat.pl                  | 641 ------------------------
 tools/docs/get_feat.py                  | 225 +++++++++
 tools/lib/python/feat/parse_features.py | 494 ++++++++++++++++++
 4 files changed, 732 insertions(+), 652 deletions(-)
 delete mode 100755 tools/docs/get_feat.pl
 create mode 100755 tools/docs/get_feat.py
 create mode 100755 tools/lib/python/feat/parse_features.py

-- 
2.51.1
Re: [PATCH v2 0/3] Convert get_feat to Python
Posted by Jonathan Corbet 1 week, 3 days ago
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes:

So you had me worried with this:

> As we don't have a definition yet for the location of the Python
> libraries yet, I opted to place the parse features library inside
> tools/docs/lib. It shouldn't be hard to move it elsewhere once we
> define a better place for them.

But it seems that you did, in fact, update the library location.  I've
applied these, thanks.

jon
Re: [PATCH v2 0/3] Convert get_feat to Python
Posted by Mauro Carvalho Chehab 1 week, 3 days ago
Em Fri, 21 Nov 2025 10:46:32 -0700
Jonathan Corbet <corbet@lwn.net> escreveu:

> Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes:
> 
> So you had me worried with this:
> 
> > As we don't have a definition yet for the location of the Python
> > libraries yet, I opted to place the parse features library inside
> > tools/docs/lib. It shouldn't be hard to move it elsewhere once we
> > define a better place for them.  
> 
> But it seems that you did, in fact, update the library location. 

Heh, forgot to update the description ;-)

> I've
> applied these, thanks.

Thanks!

Mauro