{%- macro automodule(modname, options) -%} ```{eval-rst} .. automodule:: {{ modname }} {%- for option in options %} :{{ option }}: {%- endfor %} ``` {%- endmacro %} {%- macro toctree(docnames) -%} ```{toctree} :maxdepth: {{ maxdepth }} {% for docname in docnames %} {{ docname }} {%- endfor %} ``` {%- endmacro %} {%- if is_namespace %} # {{ pkgname }} namespace {% else %} # {{ pkgname }} package {% endif %} {%- if is_namespace %} ```{eval-rst} .. py:module:: {{ pkgname }} ``` {% endif %} {%- if modulefirst and not is_namespace %} {{ automodule(pkgname, automodule_options) }} {% endif %} {%- if subpackages %} ## Subpackages {{ toctree(subpackages) }} {% endif %} {%- if submodules %} ## Submodules {% if separatemodules %} {{ toctree(submodules) }} {% else %} {%- for submodule in submodules %} {% if show_headings %} ## {{ submodule }} module {% endif %} {{ automodule(submodule, automodule_options) }} {% endfor %} {%- endif %} {%- endif %} {%- if not modulefirst and not is_namespace %} ## Module contents {{ automodule(pkgname, automodule_options) }} {% endif %}