|
|
|
@ -29,19 +29,27 @@ def parse_arg():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DocGenerator(object):
|
|
|
|
|
def __init__(self, module_name, stream=sys.stdout):
|
|
|
|
|
def __init__(self, module_name=None, stream=sys.stdout):
|
|
|
|
|
if module_name == "":
|
|
|
|
|
module_name = None
|
|
|
|
|
self.stream = stream
|
|
|
|
|
self.module_name = module_name
|
|
|
|
|
if not hasattr(fluid, module_name):
|
|
|
|
|
raise ValueError("Cannot find fluid.{0}".format(module_name))
|
|
|
|
|
if module_name is None:
|
|
|
|
|
self.module_name = "fluid"
|
|
|
|
|
else:
|
|
|
|
|
self.module = getattr(fluid, module_name)
|
|
|
|
|
self.module_name = "fluid." + module_name
|
|
|
|
|
if module_name is None:
|
|
|
|
|
self.module = fluid
|
|
|
|
|
else:
|
|
|
|
|
if not hasattr(fluid, module_name):
|
|
|
|
|
raise ValueError("Cannot find fluid.{0}".format(module_name))
|
|
|
|
|
else:
|
|
|
|
|
self.module = getattr(fluid, module_name)
|
|
|
|
|
self.stream.write('''.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
|
|
|
|
|
!DO NOT EDIT THIS FILE MANUALLY!
|
|
|
|
|
|
|
|
|
|
''')
|
|
|
|
|
|
|
|
|
|
self._print_header_(module_name, dot='=', is_title=True)
|
|
|
|
|
self._print_header_(self.module_name, dot='=', is_title=True)
|
|
|
|
|
|
|
|
|
|
def print_submodule(self, submodule_name):
|
|
|
|
|
submodule = getattr(self.module, submodule_name)
|
|
|
|
@ -60,25 +68,29 @@ class DocGenerator(object):
|
|
|
|
|
self._print_header_(name, dot='=', is_title=False)
|
|
|
|
|
|
|
|
|
|
def print_item(self, name):
|
|
|
|
|
item = getattr(self.module, name)
|
|
|
|
|
item = getattr(self.module, name, None)
|
|
|
|
|
if item is None:
|
|
|
|
|
return
|
|
|
|
|
if isinstance(item, types.TypeType):
|
|
|
|
|
self.print_class(name)
|
|
|
|
|
elif isinstance(item, types.FunctionType):
|
|
|
|
|
self.print_method(name)
|
|
|
|
|
else:
|
|
|
|
|
raise RuntimeError("Unsupported item {0}".format(name))
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
def print_class(self, name):
|
|
|
|
|
self._print_ref_(name)
|
|
|
|
|
self._print_header_(name, dot='-', is_title=False)
|
|
|
|
|
self.stream.write('''.. autoclass:: paddle.fluid.{0}.{1}
|
|
|
|
|
self.stream.write('''.. autoclass:: paddle.{0}.{1}
|
|
|
|
|
:members:
|
|
|
|
|
:noindex:
|
|
|
|
|
|
|
|
|
|
'''.format(self.module_name, name))
|
|
|
|
|
|
|
|
|
|
def print_method(self, name):
|
|
|
|
|
self._print_ref_(name)
|
|
|
|
|
self._print_header_(name, dot='-', is_title=False)
|
|
|
|
|
self.stream.write('''.. autofunction:: paddle.fluid.{0}.{1}
|
|
|
|
|
self.stream.write('''.. autofunction:: paddle.{0}.{1}
|
|
|
|
|
:noindex:
|
|
|
|
|
|
|
|
|
|
'''.format(self.module_name, name))
|
|
|
|
@ -94,6 +106,10 @@ class DocGenerator(object):
|
|
|
|
|
self.stream.write('\n')
|
|
|
|
|
self.stream.write('\n')
|
|
|
|
|
|
|
|
|
|
def _print_ref_(self, name):
|
|
|
|
|
self.stream.write(".. _api_{0}_{1}:\n\n".format("_".join(
|
|
|
|
|
self.module_name.split(".")), name))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
|
args = parse_arg()
|
|
|
|
|