Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 38 additions & 18 deletions doc/fluid/api/gen_doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,38 @@
import paddle.fluid as fluid
import paddle.tensor as tensor
import paddle.nn as nn
import paddle.complex as complex
import paddle.optimizer as optimizer

#import paddle.complex as complex
#import paddle.framework as framework


def parse_arg():
parser = argparse.ArgumentParser()
parser.add_argument('--submodules', nargs="*")
parser.add_argument(
'--module_name', type=str, help='Generate the documentation of which module')
'--module_name',
type=str,
help='Generate the documentation of which module')
parser.add_argument(
'--module_prefix', type=str, help='Generate the prefix of module')
parser.add_argument(
'--output', type=str, help='Output file or output directory for output rst')
'--output',
type=str,
help='Output file or output directory for output rst')
parser.add_argument(
'--output_name', type=str, help='Output file or output directory for output rst')
'--output_name',
type=str,
help='Output file or output directory for output rst')
parser.add_argument(
'--output_dir', type=str, help='Output file or output directory for output rst')
'--output_dir',
type=str,
help='Output file or output directory for output rst')
parser.add_argument(
'--to_multiple_files', type=bool, default=False, help='Whether to separate to multiple files')
'--to_multiple_files',
type=bool,
default=False,
help='Whether to separate to multiple files')

return parser.parse_args()

Expand All @@ -53,31 +67,33 @@ def print_item(self, name):
else:
pass


class DocGenerator(object):
def __init__(self, module_name=None, module_prefix=None):
def __init__(self, module_name=None, module_prefix=None):
self.module_name = module_name
self.module_prefix = module_prefix
self.stream = None

@contextlib.contextmanager
def guard(self, filename):
assert self.stream is None, "stream must be None"
self.stream = open(filename, 'w')
self.stream = open(filename, 'w')
yield
self.stream.close()
self.stream = None

def print_submodule(self, submodule_name):
submodule = getattr(self.module, submodule_name)
if submodule is None:
raise ValueError("Cannot find submodule {0}".format(submodule_name))
raise ValueError(
"Cannot find submodule {0}".format(submodule_name))
self.print_section(submodule_name)

for item in sorted(submodule.__all__,key=str.lower):
for item in sorted(submodule.__all__, key=str.lower):
self.print_item(item)

def print_current_module(self):
for item in sorted(self.module.__all__,key=str.lower):
for item in sorted(self.module.__all__, key=str.lower):
self.print_item(item)

def print_section(self, name):
Expand All @@ -91,7 +107,7 @@ def print_item(self, name, output_name):
self.print_method(name)
else:
self.stream.close()
path = os.getcwd()+"/"+output_name+"/"+name+".rst"
path = os.getcwd() + "/" + output_name + "/" + name + ".rst"
if name != "PipeReader":
os.remove(path)

Expand Down Expand Up @@ -149,7 +165,9 @@ def _print_ref_(self, name):
self.stream.write(".. _api_{0}_{1}:\n\n".format("_".join(
self.module_prefix.split(".")), name))

def generate_doc(module_name, module_prefix, output, output_name, to_multiple_files, output_dir):

def generate_doc(module_name, module_prefix, output, output_name,
to_multiple_files, output_dir):
if module_name == "":
module_name = None

Expand All @@ -176,13 +194,14 @@ def generate_doc(module_name, module_prefix, output, output_name, to_multiple_fi
else:
gen.module_prefix = output_name + "." + module_prefix

dirname = output if to_multiple_files else os.path.dirname(output)
dirname = output if to_multiple_files else os.path.dirname(output)

if output_dir != None:
dirname = output_dir + "/" + dirname
output = output_dir + "/" + output

if len(dirname) > 0 and (not os.path.exists(dirname) or not os.path.isdir(dirname)):
if len(dirname) > 0 and (not os.path.exists(dirname) or
not os.path.isdir(dirname)):
os.makedirs(dirname)

if not to_multiple_files:
Expand All @@ -191,7 +210,7 @@ def generate_doc(module_name, module_prefix, output, output_name, to_multiple_fi
prefix_len = len(gen.module_prefix)
assert gen.module_prefix == gen.module_name[0:prefix_len], \
"module_prefix must be prefix of module_name"
diff_name = gen.module_name[prefix_len+1:]
diff_name = gen.module_name[prefix_len + 1:]
if diff_name != "":
header_name = diff_name
else:
Expand All @@ -203,7 +222,7 @@ def generate_doc(module_name, module_prefix, output, output_name, to_multiple_fi
gen._print_header_(header_name, dot='=', is_title=True)
gen.print_current_module()
else:
apis = sorted(gen.module.__all__,key=str.lower)
apis = sorted(gen.module.__all__, key=str.lower)
for api in apis:
header_name = api
with gen.guard(os.path.join(output, api + '.rst')):
Expand All @@ -213,7 +232,8 @@ def generate_doc(module_name, module_prefix, output, output_name, to_multiple_fi

def main():
args = parse_arg()
generate_doc(args.module_name, args.module_prefix, args.output, args.output_name, args.to_multiple_files, args.output_dir)
generate_doc(args.module_name, args.module_prefix, args.output,
args.output_name, args.to_multiple_files, args.output_dir)


if __name__ == '__main__':
Expand Down
8 changes: 4 additions & 4 deletions doc/fluid/api/optimizer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ paddle.optimizer
optimizer/AdagradOptimizer.rst
optimizer/Adam.rst
optimizer/Adamax.rst
optimizer/AdamaxOptimizer.rst
optimizer/AdamOptimizer.rst
optimizer/AdamW.rst
optimizer/DecayedAdagrad.rst
optimizer/DecayedAdagradOptimizer.rst
optimizer/DGCMomentumOptimizer.rst
Expand All @@ -29,9 +28,10 @@ paddle.optimizer
optimizer/Momentum.rst
optimizer/MomentumOptimizer.rst
optimizer/RecomputeOptimizer.rst
optimizer/RMSPropOptimizer.rst
optimizer/RMSProp.rst
optimizer/SGD.rst
optimizer/SGDOptimizer.rst
optimizer/Optimizer.rst
optimizer/NoamLR.rst
optimizer/PiecewiseLR.rst
optimizer/NaturalExpLR.rst
Expand All @@ -43,4 +43,4 @@ paddle.optimizer
optimizer/StepLR.rst
optimizer/LambdaLR.rst
optimizer/ReduceLROnPlateau.rst
optimizer/CosineAnnealingLR.rst
optimizer/CosineAnnealingLR.rst
5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/Adadelta.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_Adadelta:
.. _api_optimizer_Adadelta:

Adadelta
--------

.. autoclass:: paddle.fluid.optimizer.Adadelta
.. autoclass:: paddle.optimizer.Adadelta
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/AdadeltaOptimizer.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_AdadeltaOptimizer:
.. _api_optimizer_AdadeltaOptimizer:

AdadeltaOptimizer
-----------------

.. autoclass:: paddle.fluid.optimizer.AdadeltaOptimizer
.. autoclass:: paddle.optimizer.AdadeltaOptimizer
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/Adagrad.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_Adagrad:
.. _api_optimizer_Adagrad:

Adagrad
-------

.. autoclass:: paddle.fluid.optimizer.Adagrad
.. autoclass:: paddle.optimizer.Adagrad
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/AdagradOptimizer.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_AdagradOptimizer:
.. _api_optimizer_AdagradOptimizer:

AdagradOptimizer
----------------

.. autoclass:: paddle.fluid.optimizer.AdagradOptimizer
.. autoclass:: paddle.optimizer.AdagradOptimizer
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/Adam.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_Adam:
.. _api_optimizer_Adam:

Adam
----

.. autoclass:: paddle.fluid.optimizer.Adam
.. autoclass:: paddle.optimizer.Adam
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

14 changes: 0 additions & 14 deletions doc/fluid/api/optimizer/AdamOptimizer.rst

This file was deleted.

13 changes: 13 additions & 0 deletions doc/fluid/api/optimizer/AdamW.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_optimizer_AdamW:

AdamW
-----

.. autoclass:: paddle.optimizer.AdamW
:members:
:inherited-members:
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/Adamax.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_Adamax:
.. _api_optimizer_Adamax:

Adamax
------

.. autoclass:: paddle.fluid.optimizer.Adamax
.. autoclass:: paddle.optimizer.Adamax
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

14 changes: 0 additions & 14 deletions doc/fluid/api/optimizer/AdamaxOptimizer.rst

This file was deleted.

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/DGCMomentumOptimizer.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_DGCMomentumOptimizer:
.. _api_optimizer_DGCMomentumOptimizer:

DGCMomentumOptimizer
--------------------

.. autoclass:: paddle.fluid.optimizer.DGCMomentumOptimizer
.. autoclass:: paddle.optimizer.DGCMomentumOptimizer
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/DecayedAdagrad.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_DecayedAdagrad:
.. _api_optimizer_DecayedAdagrad:

DecayedAdagrad
--------------

.. autoclass:: paddle.fluid.optimizer.DecayedAdagrad
.. autoclass:: paddle.optimizer.DecayedAdagrad
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/DecayedAdagradOptimizer.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_DecayedAdagradOptimizer:
.. _api_optimizer_DecayedAdagradOptimizer:

DecayedAdagradOptimizer
-----------------------

.. autoclass:: paddle.fluid.optimizer.DecayedAdagradOptimizer
.. autoclass:: paddle.optimizer.DecayedAdagradOptimizer
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

5 changes: 2 additions & 3 deletions doc/fluid/api/optimizer/Dpsgd.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!

.. _api_fluid_optimizer_Dpsgd:
.. _api_optimizer_Dpsgd:

Dpsgd
-----

.. autoclass:: paddle.fluid.optimizer.Dpsgd
.. autoclass:: paddle.optimizer.Dpsgd
:members:
:inherited-members:
:exclude-members: apply_gradients, apply_optimize, backward, load
:noindex:

Loading