Skip to content

Commit 783b776

Browse files
committed
FIX(SPHINXEXT) Teach default AutoFuncDocumenter about FnOps ...
so now annotated module functions appear in the site.
1 parent d9e09df commit 783b776

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

graphtik/sphinxext/__init__.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@
2222
from sphinx.domains.std import StandardDomain
2323
from sphinx.environment import BuildEnvironment
2424
from sphinx.ext import doctest as extdoctest
25+
from sphinx.ext.autodoc import ModuleDocumenter
2526
from sphinx.locale import _, __
2627
from sphinx.roles import XRefRole
2728
from sphinx.util import logging
2829
from sphinx.util.console import bold # pylint: disable=no-name-in-module
2930
from sphinx.writers.html import HTMLTranslator
3031
from sphinx.writers.latex import LaTeXTranslator
3132

33+
from graphtik.fnop import FnOp
34+
3235
from .. import __version__
3336

3437
try:
@@ -501,10 +504,24 @@ def _validate_and_apply_configs(app: Sphinx, config: Config):
501504
)
502505

503506

507+
def _teach_documenter_about_operations(FuncDocClass):
508+
original__can_document_member = FuncDocClass.can_document_member
509+
510+
def patched__can_document_member(cls, member, membername, isattr, parent):
511+
return original__can_document_member(member, membername, isattr, parent) or (
512+
isinstance(member, FnOp) and isinstance(parent, ModuleDocumenter)
513+
)
514+
515+
FuncDocClass.can_document_member = classmethod(patched__can_document_member)
516+
517+
504518
def setup(app: Sphinx):
505519
setup.app = app
506520
app.require_sphinx("2.0")
507521
app.setup_extension("sphinx.ext.doctest")
522+
app.setup_extension("sphinx.ext.autodoc")
523+
524+
_teach_documenter_about_operations(app.registry.documenters["function"])
508525

509526
app.add_config_value(
510527
"graphtik_graph_formats_by_builder",

0 commit comments

Comments
 (0)