mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
tools: ynl: render event op docs correctly
The docs for YNL event ops currently render raw python structs. For example in: https://docs.kernel.org/netlink/specs/ethtool.html#cable-test-ntf event: {‘attributes’: [‘header’, ‘status’, ‘nest’], ‘__lineno__’: 2385} Handle event ops correctly and render their op attributes: event: attributes: [header, status] Signed-off-by: Donald Hunter <donald.hunter@gmail.com> Link: https://patch.msgid.link/20260112153436.75495-1-donald.hunter@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
ffe4ccd359
commit
fa5726692e
@@ -166,13 +166,13 @@ class YnlDocGenerator:
|
||||
continue
|
||||
lines.append(self.fmt.rst_paragraph(self.fmt.bold(key), level + 1))
|
||||
if key in ['request', 'reply']:
|
||||
lines.append(self.parse_do_attributes(do_dict[key], level + 1) + "\n")
|
||||
lines.append(self.parse_op_attributes(do_dict[key], level + 1) + "\n")
|
||||
else:
|
||||
lines.append(self.fmt.headroom(level + 2) + do_dict[key] + "\n")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
def parse_do_attributes(self, attrs: Dict[str, Any], level: int = 0) -> str:
|
||||
def parse_op_attributes(self, attrs: Dict[str, Any], level: int = 0) -> str:
|
||||
"""Parse 'attributes' section"""
|
||||
if "attributes" not in attrs:
|
||||
return ""
|
||||
@@ -184,7 +184,7 @@ class YnlDocGenerator:
|
||||
|
||||
def parse_operations(self, operations: List[Dict[str, Any]], namespace: str) -> str:
|
||||
"""Parse operations block"""
|
||||
preprocessed = ["name", "doc", "title", "do", "dump", "flags"]
|
||||
preprocessed = ["name", "doc", "title", "do", "dump", "flags", "event"]
|
||||
linkable = ["fixed-header", "attribute-set"]
|
||||
lines = []
|
||||
|
||||
@@ -217,6 +217,9 @@ class YnlDocGenerator:
|
||||
if "dump" in operation:
|
||||
lines.append(self.fmt.rst_paragraph(":dump:", 0))
|
||||
lines.append(self.parse_do(operation["dump"], 0))
|
||||
if "event" in operation:
|
||||
lines.append(self.fmt.rst_paragraph(":event:", 0))
|
||||
lines.append(self.parse_op_attributes(operation["event"], 0))
|
||||
|
||||
# New line after fields
|
||||
lines.append("\n")
|
||||
|
||||
Reference in New Issue
Block a user