[PATCH 17/23] docs/qapidoc: record current documented entity in transmogrifier

John Snow posted 23 patches 4 months, 3 weeks ago
There is a newer version of this series
[PATCH 17/23] docs/qapidoc: record current documented entity in transmogrifier
Posted by John Snow 4 months, 3 weeks ago
Keep a record of which entity we're working on documenting for the
purposes of being able to change certain generative features
conditionally and create stronger assertions.

If you find yourself asking: "Wait, but where does the current entity
actually get recorded?!", you're right! That part comes with the
visit_entity() implementation, which gets added later.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 docs/sphinx/qapidoc.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index 02f434c09ab..c731c597daf 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -74,9 +74,15 @@ def dedent(text: str) -> str:
 
 class Transmogrifier:
     def __init__(self, schema):
+        self._curr_ent = None
         self._result = StringList()
         self.indent = 0
 
+    @property
+    def entity(self) -> QAPISchemaEntity:
+        assert self._curr_ent is not None
+        return self._curr_ent
+
     # General-purpose rST generation functions
 
     def get_indent(self) -> str:
-- 
2.47.0
Re: [PATCH 17/23] docs/qapidoc: record current documented entity in transmogrifier
Posted by Markus Armbruster 4 months, 2 weeks ago
John Snow <jsnow@redhat.com> writes:

> Keep a record of which entity we're working on documenting for the
> purposes of being able to change certain generative features
> conditionally and create stronger assertions.
>
> If you find yourself asking: "Wait, but where does the current entity
> actually get recorded?!", you're right! That part comes with the
> visit_entity() implementation, which gets added later.

That's fine, except your title promises "record current documented
entity".  Perhaps "Prepare to record entity being transmogrified".

> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  docs/sphinx/qapidoc.py | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
> index 02f434c09ab..c731c597daf 100644
> --- a/docs/sphinx/qapidoc.py
> +++ b/docs/sphinx/qapidoc.py
> @@ -74,9 +74,15 @@ def dedent(text: str) -> str:
>  
>  class Transmogrifier:
>      def __init__(self, schema):
> +        self._curr_ent = None
>          self._result = StringList()
>          self.indent = 0
>  
> +    @property
> +    def entity(self) -> QAPISchemaEntity:
> +        assert self._curr_ent is not None
> +        return self._curr_ent
> +
>      # General-purpose rST generation functions
>  
>      def get_indent(self) -> str:
Re: [PATCH 17/23] docs/qapidoc: record current documented entity in transmogrifier
Posted by John Snow 4 months ago
On Fri, Dec 20, 2024 at 9:23 AM Markus Armbruster <armbru@redhat.com> wrote:

> John Snow <jsnow@redhat.com> writes:
>
> > Keep a record of which entity we're working on documenting for the
> > purposes of being able to change certain generative features
> > conditionally and create stronger assertions.
> >
> > If you find yourself asking: "Wait, but where does the current entity
> > actually get recorded?!", you're right! That part comes with the
> > visit_entity() implementation, which gets added later.
>
> That's fine, except your title promises "record current documented
> entity".  Perhaps "Prepare to record entity being transmogrified".
>

Sometimes, I think I exist in a time and space that doesn't actually exist;
a hallucination of multiple timelines that might exist only in my own
consciousness. I'd be worried if I wasn't an ardent solipsist.

--js


>
> > Signed-off-by: John Snow <jsnow@redhat.com>
> > ---
> >  docs/sphinx/qapidoc.py | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
> > index 02f434c09ab..c731c597daf 100644
> > --- a/docs/sphinx/qapidoc.py
> > +++ b/docs/sphinx/qapidoc.py
> > @@ -74,9 +74,15 @@ def dedent(text: str) -> str:
> >
> >  class Transmogrifier:
> >      def __init__(self, schema):
> > +        self._curr_ent = None
> >          self._result = StringList()
> >          self.indent = 0
> >
> > +    @property
> > +    def entity(self) -> QAPISchemaEntity:
> > +        assert self._curr_ent is not None
> > +        return self._curr_ent
> > +
> >      # General-purpose rST generation functions
> >
> >      def get_indent(self) -> str:
>
>
Re: [PATCH 17/23] docs/qapidoc: record current documented entity in transmogrifier
Posted by Markus Armbruster 4 months ago
John Snow <jsnow@redhat.com> writes:

> On Fri, Dec 20, 2024 at 9:23 AM Markus Armbruster <armbru@redhat.com> wrote:
>
>> John Snow <jsnow@redhat.com> writes:
>>
>> > Keep a record of which entity we're working on documenting for the
>> > purposes of being able to change certain generative features
>> > conditionally and create stronger assertions.
>> >
>> > If you find yourself asking: "Wait, but where does the current entity
>> > actually get recorded?!", you're right! That part comes with the
>> > visit_entity() implementation, which gets added later.
>>
>> That's fine, except your title promises "record current documented
>> entity".  Perhaps "Prepare to record entity being transmogrified".
>>
>
> Sometimes, I think I exist in a time and space that doesn't actually exist;
> a hallucination of multiple timelines that might exist only in my own
> consciousness. I'd be worried if I wasn't an ardent solipsist.

I'm glad I haven't caused you worry!  Perhaps I should try this
solipsism thing myself some day.

[...]