On Wed, Jul 8, 2020, 6:18 AM Doug Hellmann <[email protected]> wrote:
> > > > On Jun 29, 2020, at 3:59 PM, Rollo Konig-Brock <[email protected]> > wrote: > > > > Hey there, > > > > I posted this question on stack overflow, but I think it's a bit too > niche for that site and it's better to just ask the hardcore Sphinx users. > > > > ------ > > > > How can one create a Sphinx directive that creates documentation from an > externally defined data structure? > > > > For context, I have some classes that automatically create attributes > based on a JSON response. > > > > class Model: > > > > > > def __init__(self, json_data): > > > > self > > .__dict__ = > > json_data > > > > > > model > > = Model({"a": 1}) > > > > model > > .a > > The issue I'm having is documenting this in Sphinx. I could possibly do > it manually like so: > > > > .. autoclass:: Model > > > > > > > > .. attribute:: a > > However the properties are numerous, outside my control, which presents > issues keeping the documentation up to date with the backend. > > > > Attempting to remedy this problem I've built up a data-structure pulled > from a swagger document that contains information about these dynamic > properties. However I have no idea how to apply this in Sphinx. I've looked > into custom directives and domains, but without some serious digging into > the internals I don't understand how to create a directive that creates > other directives. > > > > In essence I would like to do the following. > > > > .. autoclass:: Model > > > > > > > > .. custom_set_of_attributes_directive:: model_schema > > If you have the swagger data in a machine-parseable format like XML you > may find sphinxcontrib-datatemplates useful for formatting it within a > sphinx document. https://github.com/sphinx-contrib/datatemplates/ > > > Which would be equivalent to: > > > > .. autoclass:: Model > > > > > > > > .. attribute:: > > a > > > > .. attribute:: > > b > > > > .. attribute:: c > > > > > > -- > > You received this message because you are subscribed to the Google > Groups "sphinx-users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected]. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sphinx-users/58214896-735d-4b47-94d1-9ab2f907e6aeo%40googlegroups.com > . > > -- > You received this message because you are subscribed to the Google Groups > "sphinx-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sphinx-users/E12C5519-4646-4A3E-AA66-289D3897707F%40doughellmann.com > . > -- You received this message because you are subscribed to the Google Groups "sphinx-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sphinx-users/CAELGjd8ZPTjN0PEBf5Xw%3DVyC2tTfOnWJN7dosLLj%3Dds98L0kkg%40mail.gmail.com.
