docs: kdoc_files: use a class to group config parameters

Instead of abusing argparse.Namespace, define a class to store
configuration parameters and logger.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <a66ec9872c72a3ba1a5ac567881d67dc8ee581c6.1773823995.git.mchehab+huawei@kernel.org>
This commit is contained in:
Mauro Carvalho Chehab
2026-03-18 10:11:04 +01:00
committed by Jonathan Corbet
parent 8c0b7c0d3c
commit e0ebee442d

View File

@@ -9,7 +9,6 @@ Classes for navigating through the files that kernel-doc needs to handle
to generate documentation.
"""
import argparse
import logging
import os
import re
@@ -87,6 +86,28 @@ class GlobSourceFiles:
file_not_found_cb(fname)
class KdocConfig():
"""
Stores all configuration attributes that kdoc_parser and kdoc_output
needs.
"""
def __init__(self, verbose=False, werror=False, wreturn=False,
wshort_desc=False, wcontents_before_sections=False,
logger=None):
self.verbose = verbose
self.werror = werror
self.wreturn = wreturn
self.wshort_desc = wshort_desc
self.wcontents_before_sections = wcontents_before_sections
if logger:
self.log = logger
else:
self.log = logging.getLogger(__file__)
self.warning = self.log.warning
class KernelFiles():
"""
Parse kernel-doc tags on multiple kernel source files.
@@ -224,29 +245,25 @@ class KernelFiles():
if kdoc_werror:
werror = kdoc_werror
if not logger:
logger = logging.getLogger("kernel-doc")
else:
logger = logger
# Some variables are global to the parser logic as a whole as they are
# used to send control configuration to KernelDoc class. As such,
# those variables are read-only inside the KernelDoc.
self.config = argparse.Namespace
self.config = KdocConfig(verbose, werror, wreturn, wshort_desc,
wcontents_before_sections, logger)
self.config.verbose = verbose
self.config.werror = werror
self.config.wreturn = wreturn
self.config.wshort_desc = wshort_desc
self.config.wcontents_before_sections = wcontents_before_sections
# Override log warning, as we want to count errors
self.config.warning = self.warning
if xforms:
self.xforms = xforms
else:
self.xforms = CTransforms()
if not logger:
self.config.log = logging.getLogger("kernel-doc")
else:
self.config.log = logger
self.config.warning = self.warning
self.config.src_tree = os.environ.get("SRCTREE", None)
# Initialize variables that are internal to KernelFiles