salt/doc/_ext/saltautodoc.py

46 lines
1.3 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
'''
:codeauthor: :email:`Pedro Algarvio (pedro@algarvio.me)`
:copyright: © 2013 by the SaltStack Team, see AUTHORS for more details.
:license: Apache 2.0, see LICENSE for more details.
saltautodoc.py
~~~~~~~~~~~~~~
Properly handle ``__func_alias__``
'''
# Import Sphinx libs
from sphinx.ext.autodoc import FunctionDocumenter as FunctionDocumenter
class SaltFunctionDocumenter(FunctionDocumenter):
'''
Simple override of sphinx.ext.autodoc.FunctionDocumenter to properly render
salt's aliased function names.
'''
def format_name(self):
'''
Format the function name
'''
if not hasattr(self.module, '__func_alias__'):
# Resume normal sphinx.ext.autodoc operation
return super(FunctionDocumenter, self).format_name()
if not self.objpath:
# Resume normal sphinx.ext.autodoc operation
return super(FunctionDocumenter, self).format_name()
if len(self.objpath) > 1:
# Resume normal sphinx.ext.autodoc operation
return super(FunctionDocumenter, self).format_name()
# Use the salt func aliased name instead of the real name
return self.module.__func_alias__.get(self.objpath[0], self.objpath[0])
def setup(app):
app.add_autodocumenter(SaltFunctionDocumenter)