Files
linux/tools/lib/python/kdoc/kdoc_item.py
Mauro Carvalho Chehab e394855fcc docs: kdoc_item: fix a typo on sections_start_lines
Currently, there are 15 occurrences of section?_start_lines,
with 10 using the plural way.

This is an issue, as, while kdoc_output works with KdocItem,
the term doesn't match its init value.

The variable sections_start_lines stores multiple sections,
so placing it in plural is its correct way.

So, ensure that, on all parts of kdoc, this will be referred
as sections_start_lines.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <d1e0f1d3f80df41c11a1bbde6a12fd9468bc3813.1773823995.git.mchehab+huawei@kernel.org>
2026-03-22 15:10:40 -06:00

95 lines
2.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SPDX-License-Identifier: GPL-2.0
#
# A class that will, eventually, encapsulate all of the parsed data that we
# then pass into the output modules.
#
"""
Data class to store a kernel-doc Item.
"""
class KdocItem:
"""
A class that will, eventually, encapsulate all of the parsed data that we
then pass into the output modules.
"""
def __init__(self, name, fname, type, start_line, **other_stuff):
self.name = name
self.fname = fname
self.type = type
self.declaration_start_line = start_line
self.sections = {}
self.sections_start_lines = {}
self.parameterlist = []
self.parameterdesc_start_lines = {}
self.parameterdescs = {}
self.parametertypes = {}
self.warnings = []
#
# Just save everything else into our own dict so that the output
# side can grab it directly as before. As we move things into more
# structured data, this will, hopefully, fade away.
#
known_keys = {
'declaration_start_line',
'sections',
'sections_start_lines',
'parameterlist',
'parameterdesc_start_lines',
'parameterdescs',
'parametertypes',
'warnings',
}
self.other_stuff = {}
for k, v in other_stuff.items():
if k in known_keys:
setattr(self, k, v) # real attribute
else:
self.other_stuff[k] = v
def get(self, key, default = None):
"""
Get a value from optional keys.
"""
return self.other_stuff.get(key, default)
def __getitem__(self, key):
return self.get(key)
@classmethod
def from_dict(cls, d):
"""Create a KdocItem from a plain dict."""
cp = d.copy()
name = cp.pop('name', None)
fname = cp.pop('fname', None)
type = cp.pop('type', None)
start_line = cp.pop('start_line', 1)
other_stuff = cp.pop('other_stuff', {})
# Everything thats left goes straight to __init__
return cls(name, fname, type, start_line, **cp, **other_stuff)
#
# Tracking of section and parameter information.
#
def set_sections(self, sections, start_lines):
"""
Set sections and start lines.
"""
self.sections = sections
self.sections_start_lines = start_lines
def set_params(self, names, descs, types, starts):
"""
Set parameter list: names, descriptions, types and start lines.
"""
self.parameterlist = names
self.parameterdescs = descs
self.parametertypes = types
self.parameterdesc_start_lines = starts