Source code for genno.compat.sphinx.autodoc_operator
from typing import TYPE_CHECKING, Any
from sphinx.ext.autodoc import FunctionDocumenter
from genno.core.operator import Operator
if TYPE_CHECKING:
import sphinx.application
[docs]
class OperatorDocumenter(FunctionDocumenter):
[docs]
@classmethod
def can_document_member(
cls, member: Any, membername: str, isattr: bool, parent: Any
) -> bool:
return isinstance(member, Operator) or super().can_document_member(
member, membername, isattr, parent
)
[docs]
def setup(app: "sphinx.application.Sphinx") -> dict:
"""Configure :mod:`sphinx.ext.autodoc` to handle :class:`Operator` as functions."""
app.add_autodocumenter(OperatorDocumenter, override=True)
return dict(parallel_read_safe=True, parallel_write_safe=True)