@@ -24,32 +24,55 @@ def parse_arg():
2424 parser = argparse .ArgumentParser ()
2525 parser .add_argument ('--submodules' , nargs = "*" )
2626 parser .add_argument (
27- 'module' , type = str , help = 'Generate the documentation of which module' )
27+ '--module' , type = str , help = 'Generate the documentation of which module' )
28+ parser .add_argument (
29+ '--module_prefix' , type = str , help = 'Generate the prefix of module' )
2830 return parser .parse_args ()
2931
3032
3133class DocGenerator (object ):
32- def __init__ (self , module_name = None , stream = sys .stdout ):
34+ def __init__ (self , module_name = None , module_prefix = None , stream = sys .stdout ):
3335 if module_name == "" :
3436 module_name = None
37+
38+ if module_prefix == "" :
39+ module_prefix = None
40+
3541 self .stream = stream
3642 if module_name is None :
3743 self .module_name = "fluid"
3844 else :
3945 self .module_name = "fluid." + module_name
4046 if module_name is None :
4147 self .module = fluid
48+ else :
49+ self .module = fluid
50+ for each_module_name in module_name .split ('.' ):
51+ if not hasattr (self .module , each_module_name ):
52+ raise ValueError ("Cannot find fluid.{0}" .format (module_name ))
53+ else :
54+ self .module = getattr (self .module , each_module_name )
55+
56+ if module_prefix is None :
57+ self .module_prefix = self .module_name
4258 else :
43- if not hasattr (fluid , module_name ):
44- raise ValueError ("Cannot find fluid.{0}" .format (module_name ))
45- else :
46- self .module = getattr (fluid , module_name )
59+ self .module_prefix = "fluid." + module_prefix
60+
4761 self .stream .write ('''.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
4862 !DO NOT EDIT THIS FILE MANUALLY!
4963
50- ''' )
64+ ''' )
5165
52- self ._print_header_ (self .module_name , dot = '=' , is_title = True )
66+ header_name = self .module_name
67+ if module_prefix is not None :
68+ prefix_len = len (self .module_prefix )
69+ assert self .module_prefix == self .module_name [0 :prefix_len ], \
70+ "module_prefix must be prefix of module_name"
71+ diff_name = self .module_name [prefix_len + 1 :]
72+ if diff_name != "" :
73+ header_name = diff_name
74+
75+ self ._print_header_ (header_name , dot = '=' , is_title = True )
5376
5477 def print_submodule (self , submodule_name ):
5578 submodule = getattr (self .module , submodule_name )
@@ -85,15 +108,15 @@ def print_class(self, name):
85108 :members:
86109 :noindex:
87110
88- ''' .format (self .module_name , name ))
111+ ''' .format (self .module_prefix , name ))
89112
90113 def print_method (self , name ):
91114 self ._print_ref_ (name )
92115 self ._print_header_ (name , dot = '-' , is_title = False )
93116 self .stream .write ('''.. autofunction:: paddle.{0}.{1}
94117 :noindex:
95118
96- ''' .format (self .module_name , name ))
119+ ''' .format (self .module_prefix , name ))
97120
98121 def _print_header_ (self , name , dot , is_title ):
99122 dot_line = dot * len (name )
@@ -108,12 +131,12 @@ def _print_header_(self, name, dot, is_title):
108131
109132 def _print_ref_ (self , name ):
110133 self .stream .write (".. _api_{0}_{1}:\n \n " .format ("_" .join (
111- self .module_name .split ("." )), name ))
134+ self .module_prefix .split ("." )), name ))
112135
113136
114137def main ():
115138 args = parse_arg ()
116- gen = DocGenerator (args .module )
139+ gen = DocGenerator (args .module , args . module_prefix )
117140 if args .submodules is None :
118141 gen .print_current_module ()
119142 else :
0 commit comments