mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
docs: maintainers_include: do some coding style cleanups
Minor coding style adjustments to use the style most python doc scripts are following. No functional changes. Assisted-by: pylint, black Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Message-ID: <460aabd0518f080b34e12fdc0beb7ec7685d5866.1777987027.git.mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Message-ID: <e041be77fcda3f1a54fdb428b3f8703bbce5d6ff.1778309595.git.mchehab+huawei@kernel.org>
This commit is contained in:
parent
8cf515e259
commit
b15fd8c043
|
|
@ -1,30 +1,25 @@
|
|||
#!/usr/bin/env python
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# -*- coding: utf-8; mode: python -*-
|
||||
# pylint: disable=R0903, C0330, R0914, R0912, E0401
|
||||
# pylint: disable=C0209, C0301, E0401, R0022, R0902, R0903, R0912, R0914
|
||||
|
||||
"""
|
||||
maintainers-include
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
Implementation of the ``maintainers-include`` reST-directive.
|
||||
|
||||
Implementation of the ``maintainers-include`` reST-directive.
|
||||
:copyright: Copyright (C) 2019 Kees Cook <keescook@chromium.org>
|
||||
:license: GPL Version 2, June 1991 see linux/COPYING for details.
|
||||
|
||||
:copyright: Copyright (C) 2019 Kees Cook <keescook@chromium.org>
|
||||
:license: GPL Version 2, June 1991 see linux/COPYING for details.
|
||||
|
||||
The ``maintainers-include`` reST-directive performs extensive parsing
|
||||
specific to the Linux kernel's standard "MAINTAINERS" file, in an
|
||||
effort to avoid needing to heavily mark up the original plain text.
|
||||
The ``maintainers-include`` reST-directive performs extensive parsing
|
||||
specific to the Linux kernel's standard "MAINTAINERS" file, in an
|
||||
effort to avoid needing to heavily mark up the original plain text.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import re
|
||||
import os.path
|
||||
import re
|
||||
|
||||
from glob import glob
|
||||
|
||||
from docutils import statemachine
|
||||
from docutils.parsers.rst import Directive
|
||||
from docutils.parsers.rst.directives.misc import Include
|
||||
|
||||
#
|
||||
|
|
@ -32,12 +27,14 @@ from docutils.parsers.rst.directives.misc import Include
|
|||
#
|
||||
KERNELDOC_URL = "https://docs.kernel.org/"
|
||||
|
||||
def ErrorString(exc): # Shamelessly stolen from docutils
|
||||
return f'{exc.__class__.__name}: {exc}'
|
||||
__version__ = "1.0"
|
||||
|
||||
__version__ = '1.0'
|
||||
maint_parser = None # pylint: disable=C0103
|
||||
|
||||
maint_parser = None
|
||||
|
||||
# Shamelessly stolen from docutils
|
||||
def ErrorString(exc): # pylint: disable=C0103, C0116
|
||||
return f"{exc.__class__.__name}: {exc}" # pylint: disable=W0212
|
||||
|
||||
class MaintainersParser:
|
||||
"""Parse MAINTAINERS file(s) content"""
|
||||
|
|
@ -52,7 +49,7 @@ class MaintainersParser:
|
|||
|
||||
# Field letter to field name mapping.
|
||||
self.field_letter = None
|
||||
self.fields = dict()
|
||||
self.fields = {}
|
||||
|
||||
self.field_prev = ""
|
||||
self.field_content = ""
|
||||
|
|
@ -71,29 +68,30 @@ class MaintainersParser:
|
|||
self.output = ".. _maintainers:\n\n"
|
||||
|
||||
prev = None
|
||||
for line in open(path):
|
||||
if self.descriptions:
|
||||
self.parse_descriptions(line)
|
||||
elif self.maintainers and not self.subsystems:
|
||||
if re.search('^[A-Z0-9]', line):
|
||||
self.subsystems = True
|
||||
with open(path, "r", encoding="utf-8") as fp:
|
||||
for line in fp:
|
||||
if self.descriptions:
|
||||
self.parse_descriptions(line)
|
||||
elif self.maintainers and not self.subsystems:
|
||||
if re.search('^[A-Z0-9]', line):
|
||||
self.subsystems = True
|
||||
self.parse_subsystems(line)
|
||||
else:
|
||||
self.output += line
|
||||
elif self.subsystems:
|
||||
self.parse_subsystems(line)
|
||||
else:
|
||||
self.output += line
|
||||
elif self.subsystems:
|
||||
self.parse_subsystems(line)
|
||||
else:
|
||||
self.output += line
|
||||
|
||||
# Update the state machine when we find heading separators.
|
||||
if line.startswith('----------'):
|
||||
if prev.startswith('Descriptions'):
|
||||
self.descriptions = True
|
||||
if prev.startswith('Maintainers'):
|
||||
self.maintainers = True
|
||||
# Update the state machine when we find heading separators.
|
||||
if line.startswith("----------"):
|
||||
if prev.startswith("Descriptions"):
|
||||
self.descriptions = True
|
||||
if prev.startswith("Maintainers"):
|
||||
self.maintainers = True
|
||||
|
||||
# Retain previous line for state machine transitions.
|
||||
prev = line
|
||||
# Retain previous line for state machine transitions.
|
||||
prev = line
|
||||
|
||||
# Flush pending field contents.
|
||||
if self.field_content:
|
||||
|
|
@ -130,7 +128,7 @@ class MaintainersParser:
|
|||
"""Handle contents of the descriptions section."""
|
||||
|
||||
# Have we reached the end of the preformatted Descriptions text?
|
||||
if line.startswith('Maintainers'):
|
||||
if line.startswith("Maintainers"):
|
||||
self.descriptions = False
|
||||
self.output += "\n" + line
|
||||
return
|
||||
|
|
@ -182,7 +180,7 @@ class MaintainersParser:
|
|||
# Render a subsystem field as:
|
||||
# :Field: entry
|
||||
# entry...
|
||||
field, details = line.split(':', 1)
|
||||
field, details = line.split(":", 1)
|
||||
details = details.strip()
|
||||
|
||||
#
|
||||
|
|
@ -248,12 +246,11 @@ class MaintainersParser:
|
|||
|
||||
class MaintainersInclude(Include):
|
||||
"""MaintainersInclude (``maintainers-include``) directive"""
|
||||
|
||||
required_arguments = 0
|
||||
|
||||
def emit(self):
|
||||
"""Parse all the MAINTAINERS lines into ReST for human-readability"""
|
||||
global maint_parser
|
||||
|
||||
path = maint_parser.path
|
||||
output = maint_parser.output
|
||||
|
||||
|
|
@ -269,20 +266,21 @@ class MaintainersInclude(Include):
|
|||
raise self.warning('"%s" directive disabled.' % self.name)
|
||||
|
||||
try:
|
||||
lines = self.emit()
|
||||
self.emit()
|
||||
except IOError as error:
|
||||
raise self.severe('Problems with "%s" directive path:\n%s.' %
|
||||
(self.name, ErrorString(error)))
|
||||
|
||||
return []
|
||||
|
||||
|
||||
class MaintainersProfile(Include):
|
||||
"""Generate a list with all maintainer's profiles"""
|
||||
|
||||
required_arguments = 0
|
||||
|
||||
def emit(self):
|
||||
"""Parse all the MAINTAINERS lines looking for profile entries"""
|
||||
global maint_parser
|
||||
|
||||
path = maint_parser.path
|
||||
|
||||
#
|
||||
|
|
@ -316,15 +314,17 @@ class MaintainersProfile(Include):
|
|||
raise self.warning('"%s" directive disabled.' % self.name)
|
||||
|
||||
try:
|
||||
lines = self.emit()
|
||||
self.emit()
|
||||
except IOError as error:
|
||||
raise self.severe('Problems with "%s" directive path:\n%s.' %
|
||||
(self.name, ErrorString(error)))
|
||||
|
||||
return []
|
||||
|
||||
|
||||
def setup(app):
|
||||
global maint_parser
|
||||
"""Setup Sphinx extension"""
|
||||
global maint_parser # pylint: disable=W0603
|
||||
|
||||
#
|
||||
# NOTE: we're using os.fspath() here because of a Sphinx warning:
|
||||
|
|
@ -338,8 +338,9 @@ def setup(app):
|
|||
|
||||
app.add_directive("maintainers-include", MaintainersInclude)
|
||||
app.add_directive("maintainers-profile-toc", MaintainersProfile)
|
||||
return dict(
|
||||
version = __version__,
|
||||
parallel_read_safe = True,
|
||||
parallel_write_safe = True
|
||||
)
|
||||
|
||||
return {
|
||||
"version": __version__,
|
||||
"parallel_read_safe": True,
|
||||
"parallel_write_safe": True,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user