[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 15/23] docs/qapidoc: add add_field() and generate_field() helper
From: |
John Snow |
Subject: |
[PATCH 15/23] docs/qapidoc: add add_field() and generate_field() helper methods |
Date: |
Thu, 12 Dec 2024 21:18:18 -0500 |
These are simple rST generation methods that assist in getting the types
and formatting correct for a field list entry. add_field() is a more
raw, direct call while generate_field() is intended to be used for
generating the correct field from a member object.
Signed-off-by: John Snow <jsnow@redhat.com>
---
docs/sphinx/qapidoc.py | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index 1c83d1b7aac..7efe2d656c0 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -44,6 +44,7 @@
QAPISchemaEntity,
QAPISchemaEnumMember,
QAPISchemaFeature,
+ QAPISchemaMember,
QAPISchemaObjectTypeMember,
)
from qapi.source import QAPISourceInfo
@@ -132,6 +133,20 @@ def ensure_blank_line(self) -> None:
# +2: correct for zero/one index, then increment by one.
self.add_line_raw("", fname, line + 2)
+ def add_field(
+ self,
+ kind: str,
+ name: str,
+ body: str,
+ info: QAPISourceInfo,
+ typ: Optional[str] = None,
+ ) -> None:
+ if typ:
+ text = f":{kind} {typ} {name}: {body}"
+ else:
+ text = f":{kind} {name}: {body}"
+ self.add_lines(text, info)
+
def format_type(self, ent) -> Optional[str]:
if isinstance(ent, (QAPISchemaEnumMember, QAPISchemaFeature)):
return None
@@ -151,6 +166,16 @@ def format_type(self, ent) -> Optional[str]:
return ret
+ def generate_field(
+ self,
+ kind: str,
+ member: QAPISchemaMember,
+ body: str,
+ info: QAPISourceInfo,
+ ) -> None:
+ typ = self.format_type(member)
+ self.add_field(kind, member.name, body, info, typ)
+
# Transmogrification helpers
def visit_paragraph(self, section: QAPIDoc.Section) -> None:
--
2.47.0
- [PATCH 07/23] docs/qapidoc: add transmogrifier class stub, (continued)
- [PATCH 07/23] docs/qapidoc: add transmogrifier class stub, John Snow, 2024/12/12
- [PATCH 08/23] docs/qapidoc: add visit_module() method, John Snow, 2024/12/12
- [PATCH 09/23] qapi/source: allow multi-line QAPISourceInfo advancing, John Snow, 2024/12/12
- [PATCH 10/23] docs/qapidoc: add visit_freeform() method, John Snow, 2024/12/12
- [PATCH 11/23] docs/qapidoc: add preamble() method, John Snow, 2024/12/12
- [PATCH 12/23] docs/qapidoc: add visit_paragraph() method, John Snow, 2024/12/12
- [PATCH 14/23] docs/qapidoc: add format_type() method, John Snow, 2024/12/12
- [PATCH 15/23] docs/qapidoc: add add_field() and generate_field() helper methods,
John Snow <=
- [PATCH 13/23] docs/qapidoc: add visit_errors() method, John Snow, 2024/12/12
- [PATCH 16/23] docs/qapidoc: add visit_feature() method, John Snow, 2024/12/12
- [PATCH 19/23] docs/qapidoc: add visit_member() method, John Snow, 2024/12/12
- [PATCH 17/23] docs/qapidoc: record current documented entity in transmogrifier, John Snow, 2024/12/12
- [PATCH 21/23] docs/qapidoc: add visit_entity(), John Snow, 2024/12/12
- [PATCH 18/23] docs/qapidoc: add visit_returns() method, John Snow, 2024/12/12
- [PATCH 20/23] docs/qapidoc: add visit_sections() method, John Snow, 2024/12/12
- [PATCH 22/23] docs/qapidoc: implement transmogrify() method, John Snow, 2024/12/12