eric6/DocumentationTools/ModuleDocumentor.py

changeset 7252
c5e3705073eb
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7251:bc5b1b00560a 7252:c5e3705073eb
80 self.footerTemplate = TemplatesListsStyleCSS.footerTemplate 80 self.footerTemplate = TemplatesListsStyleCSS.footerTemplate
81 self.moduleTemplate = TemplatesListsStyleCSS.moduleTemplate 81 self.moduleTemplate = TemplatesListsStyleCSS.moduleTemplate
82 self.rbFileTemplate = TemplatesListsStyleCSS.rbFileTemplate 82 self.rbFileTemplate = TemplatesListsStyleCSS.rbFileTemplate
83 self.classTemplate = TemplatesListsStyleCSS.classTemplate 83 self.classTemplate = TemplatesListsStyleCSS.classTemplate
84 self.methodTemplate = TemplatesListsStyleCSS.methodTemplate 84 self.methodTemplate = TemplatesListsStyleCSS.methodTemplate
85 self.constructorTemplate = \ 85 self.constructorTemplate = (
86 TemplatesListsStyleCSS.constructorTemplate 86 TemplatesListsStyleCSS.constructorTemplate)
87 self.rbModuleTemplate = TemplatesListsStyleCSS.rbModuleTemplate 87 self.rbModuleTemplate = TemplatesListsStyleCSS.rbModuleTemplate
88 self.rbModulesClassTemplate = \ 88 self.rbModulesClassTemplate = (
89 TemplatesListsStyleCSS.rbModulesClassTemplate 89 TemplatesListsStyleCSS.rbModulesClassTemplate)
90 self.functionTemplate = TemplatesListsStyleCSS.functionTemplate 90 self.functionTemplate = TemplatesListsStyleCSS.functionTemplate
91 self.listTemplate = TemplatesListsStyleCSS.listTemplate 91 self.listTemplate = TemplatesListsStyleCSS.listTemplate
92 self.listEntryTemplate = TemplatesListsStyleCSS.listEntryTemplate 92 self.listEntryTemplate = TemplatesListsStyleCSS.listEntryTemplate
93 self.listEntryNoneTemplate = \ 93 self.listEntryNoneTemplate = (
94 TemplatesListsStyleCSS.listEntryNoneTemplate 94 TemplatesListsStyleCSS.listEntryNoneTemplate)
95 self.listEntryDeprecatedTemplate = \ 95 self.listEntryDeprecatedTemplate = (
96 TemplatesListsStyleCSS.listEntryDeprecatedTemplate 96 TemplatesListsStyleCSS.listEntryDeprecatedTemplate)
97 self.listEntrySimpleTemplate = \ 97 self.listEntrySimpleTemplate = (
98 TemplatesListsStyleCSS.listEntrySimpleTemplate 98 TemplatesListsStyleCSS.listEntrySimpleTemplate)
99 self.paragraphTemplate = TemplatesListsStyleCSS.paragraphTemplate 99 self.paragraphTemplate = TemplatesListsStyleCSS.paragraphTemplate
100 self.parametersListTemplate = \ 100 self.parametersListTemplate = (
101 TemplatesListsStyleCSS.parametersListTemplate 101 TemplatesListsStyleCSS.parametersListTemplate)
102 self.parameterTypesListEntryTemplate = \ 102 self.parameterTypesListEntryTemplate = (
103 TemplatesListsStyleCSS.parameterTypesListEntryTemplate 103 TemplatesListsStyleCSS.parameterTypesListEntryTemplate)
104 self.parametersListEntryTemplate = \ 104 self.parametersListEntryTemplate = (
105 TemplatesListsStyleCSS.parametersListEntryTemplate 105 TemplatesListsStyleCSS.parametersListEntryTemplate)
106 self.returnsTemplate = TemplatesListsStyleCSS.returnsTemplate 106 self.returnsTemplate = TemplatesListsStyleCSS.returnsTemplate
107 self.returnTypesTemplate = \ 107 self.returnTypesTemplate = (
108 TemplatesListsStyleCSS.returnTypesTemplate 108 TemplatesListsStyleCSS.returnTypesTemplate)
109 self.exceptionsListTemplate = \ 109 self.exceptionsListTemplate = (
110 TemplatesListsStyleCSS.exceptionsListTemplate 110 TemplatesListsStyleCSS.exceptionsListTemplate)
111 self.exceptionsListEntryTemplate = \ 111 self.exceptionsListEntryTemplate = (
112 TemplatesListsStyleCSS.exceptionsListEntryTemplate 112 TemplatesListsStyleCSS.exceptionsListEntryTemplate)
113 self.signalsListTemplate = \ 113 self.signalsListTemplate = (
114 TemplatesListsStyleCSS.signalsListTemplate 114 TemplatesListsStyleCSS.signalsListTemplate)
115 self.signalsListEntryTemplate = \ 115 self.signalsListEntryTemplate = (
116 TemplatesListsStyleCSS.signalsListEntryTemplate 116 TemplatesListsStyleCSS.signalsListEntryTemplate)
117 self.eventsListTemplate = TemplatesListsStyleCSS.eventsListTemplate 117 self.eventsListTemplate = TemplatesListsStyleCSS.eventsListTemplate
118 self.eventsListEntryTemplate = \ 118 self.eventsListEntryTemplate = (
119 TemplatesListsStyleCSS.eventsListEntryTemplate 119 TemplatesListsStyleCSS.eventsListEntryTemplate)
120 self.deprecatedTemplate = TemplatesListsStyleCSS.deprecatedTemplate 120 self.deprecatedTemplate = TemplatesListsStyleCSS.deprecatedTemplate
121 self.authorInfoTemplate = TemplatesListsStyleCSS.authorInfoTemplate 121 self.authorInfoTemplate = TemplatesListsStyleCSS.authorInfoTemplate
122 self.seeListTemplate = TemplatesListsStyleCSS.seeListTemplate 122 self.seeListTemplate = TemplatesListsStyleCSS.seeListTemplate
123 self.seeListEntryTemplate = \ 123 self.seeListEntryTemplate = (
124 TemplatesListsStyleCSS.seeListEntryTemplate 124 TemplatesListsStyleCSS.seeListEntryTemplate)
125 self.seeLinkTemplate = TemplatesListsStyleCSS.seeLinkTemplate 125 self.seeLinkTemplate = TemplatesListsStyleCSS.seeLinkTemplate
126 self.sinceInfoTemplate = TemplatesListsStyleCSS.sinceInfoTemplate 126 self.sinceInfoTemplate = TemplatesListsStyleCSS.sinceInfoTemplate
127 else: 127 else:
128 from . import TemplatesListsStyle 128 from . import TemplatesListsStyle
129 self.headerTemplate = \ 129 self.headerTemplate = (
130 TemplatesListsStyle.headerTemplate.format(**colors) 130 TemplatesListsStyle.headerTemplate.format(**colors))
131 self.footerTemplate = \ 131 self.footerTemplate = (
132 TemplatesListsStyle.footerTemplate.format(**colors) 132 TemplatesListsStyle.footerTemplate.format(**colors))
133 self.moduleTemplate = \ 133 self.moduleTemplate = (
134 TemplatesListsStyle.moduleTemplate.format(**colors) 134 TemplatesListsStyle.moduleTemplate.format(**colors))
135 self.rbFileTemplate = \ 135 self.rbFileTemplate = (
136 TemplatesListsStyle.rbFileTemplate.format(**colors) 136 TemplatesListsStyle.rbFileTemplate.format(**colors))
137 self.classTemplate = \ 137 self.classTemplate = (
138 TemplatesListsStyle.classTemplate.format(**colors) 138 TemplatesListsStyle.classTemplate.format(**colors))
139 self.methodTemplate = \ 139 self.methodTemplate = (
140 TemplatesListsStyle.methodTemplate.format(**colors) 140 TemplatesListsStyle.methodTemplate.format(**colors))
141 self.constructorTemplate = \ 141 self.constructorTemplate = (
142 TemplatesListsStyle.constructorTemplate.format(**colors) 142 TemplatesListsStyle.constructorTemplate.format(**colors))
143 self.rbModuleTemplate = \ 143 self.rbModuleTemplate = (
144 TemplatesListsStyle.rbModuleTemplate.format(**colors) 144 TemplatesListsStyle.rbModuleTemplate.format(**colors))
145 self.rbModulesClassTemplate = \ 145 self.rbModulesClassTemplate = (
146 TemplatesListsStyle.rbModulesClassTemplate.format(**colors) 146 TemplatesListsStyle.rbModulesClassTemplate.format(**colors))
147 self.functionTemplate = \ 147 self.functionTemplate = (
148 TemplatesListsStyle.functionTemplate.format(**colors) 148 TemplatesListsStyle.functionTemplate.format(**colors))
149 self.listTemplate = \ 149 self.listTemplate = (
150 TemplatesListsStyle.listTemplate.format(**colors) 150 TemplatesListsStyle.listTemplate.format(**colors))
151 self.listEntryTemplate = \ 151 self.listEntryTemplate = (
152 TemplatesListsStyle.listEntryTemplate.format(**colors) 152 TemplatesListsStyle.listEntryTemplate.format(**colors))
153 self.listEntryNoneTemplate = \ 153 self.listEntryNoneTemplate = (
154 TemplatesListsStyle.listEntryNoneTemplate.format(**colors) 154 TemplatesListsStyle.listEntryNoneTemplate.format(**colors))
155 self.listEntryDeprecatedTemplate = \ 155 self.listEntryDeprecatedTemplate = (
156 TemplatesListsStyle.listEntryDeprecatedTemplate.format( 156 TemplatesListsStyle.listEntryDeprecatedTemplate.format(
157 **colors) 157 **colors))
158 self.listEntrySimpleTemplate = \ 158 self.listEntrySimpleTemplate = (
159 TemplatesListsStyle.listEntrySimpleTemplate.format(**colors) 159 TemplatesListsStyle.listEntrySimpleTemplate.format(**colors))
160 self.paragraphTemplate = \ 160 self.paragraphTemplate = (
161 TemplatesListsStyle.paragraphTemplate.format(**colors) 161 TemplatesListsStyle.paragraphTemplate.format(**colors))
162 self.parametersListTemplate = \ 162 self.parametersListTemplate = (
163 TemplatesListsStyle.parametersListTemplate.format(**colors) 163 TemplatesListsStyle.parametersListTemplate.format(**colors))
164 self.parametersListEntryTemplate = \ 164 self.parametersListEntryTemplate = (
165 TemplatesListsStyle.parametersListEntryTemplate.format( 165 TemplatesListsStyle.parametersListEntryTemplate.format(
166 **colors) 166 **colors))
167 self.parameterTypesListEntryTemplate = \ 167 self.parameterTypesListEntryTemplate = (
168 TemplatesListsStyle.parameterTypesListEntryTemplate.format( 168 TemplatesListsStyle.parameterTypesListEntryTemplate.format(
169 **colors) 169 **colors))
170 self.returnsTemplate = \ 170 self.returnsTemplate = (
171 TemplatesListsStyle.returnsTemplate.format(**colors) 171 TemplatesListsStyle.returnsTemplate.format(**colors))
172 self.returnTypesTemplate = \ 172 self.returnTypesTemplate = (
173 TemplatesListsStyle.returnTypesTemplate.format(**colors) 173 TemplatesListsStyle.returnTypesTemplate.format(**colors))
174 self.exceptionsListTemplate = \ 174 self.exceptionsListTemplate = (
175 TemplatesListsStyle.exceptionsListTemplate.format(**colors) 175 TemplatesListsStyle.exceptionsListTemplate.format(**colors))
176 self.exceptionsListEntryTemplate = \ 176 self.exceptionsListEntryTemplate = (
177 TemplatesListsStyle.exceptionsListEntryTemplate.format( 177 TemplatesListsStyle.exceptionsListEntryTemplate.format(
178 **colors) 178 **colors))
179 self.signalsListTemplate = \ 179 self.signalsListTemplate = (
180 TemplatesListsStyle.signalsListTemplate.format(**colors) 180 TemplatesListsStyle.signalsListTemplate.format(**colors))
181 self.signalsListEntryTemplate = \ 181 self.signalsListEntryTemplate = (
182 TemplatesListsStyle.signalsListEntryTemplate.format(**colors) 182 TemplatesListsStyle.signalsListEntryTemplate.format(**colors))
183 self.eventsListTemplate = \ 183 self.eventsListTemplate = (
184 TemplatesListsStyle.eventsListTemplate.format(**colors) 184 TemplatesListsStyle.eventsListTemplate.format(**colors))
185 self.eventsListEntryTemplate = \ 185 self.eventsListEntryTemplate = (
186 TemplatesListsStyle.eventsListEntryTemplate.format(**colors) 186 TemplatesListsStyle.eventsListEntryTemplate.format(**colors))
187 self.deprecatedTemplate = \ 187 self.deprecatedTemplate = (
188 TemplatesListsStyle.deprecatedTemplate.format(**colors) 188 TemplatesListsStyle.deprecatedTemplate.format(**colors))
189 self.authorInfoTemplate = \ 189 self.authorInfoTemplate = (
190 TemplatesListsStyle.authorInfoTemplate.format(**colors) 190 TemplatesListsStyle.authorInfoTemplate.format(**colors))
191 self.seeListTemplate = \ 191 self.seeListTemplate = (
192 TemplatesListsStyle.seeListTemplate.format(**colors) 192 TemplatesListsStyle.seeListTemplate.format(**colors))
193 self.seeListEntryTemplate = \ 193 self.seeListEntryTemplate = (
194 TemplatesListsStyle.seeListEntryTemplate.format(**colors) 194 TemplatesListsStyle.seeListEntryTemplate.format(**colors))
195 self.seeLinkTemplate = \ 195 self.seeLinkTemplate = (
196 TemplatesListsStyle.seeLinkTemplate.format(**colors) 196 TemplatesListsStyle.seeLinkTemplate.format(**colors))
197 self.sinceInfoTemplate = \ 197 self.sinceInfoTemplate = (
198 TemplatesListsStyle.sinceInfoTemplate.format(**colors) 198 TemplatesListsStyle.sinceInfoTemplate.format(**colors))
199 199
200 self.keywords = [] 200 self.keywords = []
201 # list of tuples containing the name (string) and 201 # list of tuples containing the name (string) and
202 # the ref (string). The ref is without the filename part. 202 # the ref (string). The ref is without the filename part.
203 self.generated = False 203 self.generated = False
243 """ 243 """
244 Public method to generate the source code documentation. 244 Public method to generate the source code documentation.
245 245
246 @return The source code documentation. (string) 246 @return The source code documentation. (string)
247 """ 247 """
248 doc = self.headerTemplate.format( 248 doc = (
249 **{'Title': self.module.name, 249 self.headerTemplate.format(
250 'Style': self.stylesheet}) + \ 250 **{'Title': self.module.name,
251 self.__genModuleSection() + \ 251 'Style': self.stylesheet}
252 ) +
253 self.__genModuleSection() +
252 self.footerTemplate 254 self.footerTemplate
255 )
253 self.generated = True 256 self.generated = True
254 return doc 257 return doc
255 258
256 def __genModuleSection(self): 259 def __genModuleSection(self):
257 """ 260 """
413 supers = ', '.join(supers) 416 supers = ', '.join(supers)
414 else: 417 else:
415 supers = 'None' 418 supers = 'None'
416 419
417 globalsList = self.__genGlobalsListSection(_class) 420 globalsList = self.__genGlobalsListSection(_class)
418 classMethList, classMethBodies = \ 421 classMethList, classMethBodies = self.__genMethodSection(
419 self.__genMethodSection(_class, className, Function.Class) 422 _class, className, Function.Class)
420 methList, methBodies = \ 423 methList, methBodies = self.__genMethodSection(
421 self.__genMethodSection(_class, className, Function.General) 424 _class, className, Function.General)
422 staticMethList, staticMethBodies = \ 425 staticMethList, staticMethBodies = self.__genMethodSection(
423 self.__genMethodSection(_class, className, Function.Static) 426 _class, className, Function.Static)
424 427
425 try: 428 try:
426 clsBody = self.classTemplate.format( 429 clsBody = self.classTemplate.format(
427 **{'Anchor': className, 430 **{'Anchor': className,
428 'Class': _class.name, 431 'Class': _class.name,
627 if len(supers) > 0: 630 if len(supers) > 0:
628 supers = ', '.join(supers) 631 supers = ', '.join(supers)
629 else: 632 else:
630 supers = 'None' 633 supers = 'None'
631 634
632 methList, methBodies = \ 635 methList, methBodies = self.__genMethodSection(
633 self.__genMethodSection(_class, className, Function.General) 636 _class, className, Function.General)
634 637
635 try: 638 try:
636 clsBody = self.rbModulesClassTemplate.format( 639 clsBody = self.rbModulesClassTemplate.format(
637 **{'Anchor': className, 640 **{'Anchor': className,
638 'Class': _class.name, 641 'Class': _class.name,
738 descfound = 1 741 descfound = 1
739 dotpos = desc.find('.') 742 dotpos = desc.find('.')
740 if dotpos == -1: 743 if dotpos == -1:
741 sdlist.append(desc.strip()) 744 sdlist.append(desc.strip())
742 else: 745 else:
743 while dotpos + 1 < len(desc) and \ 746 while (
744 not desc[dotpos + 1].isspace(): 747 dotpos + 1 < len(desc) and
748 not desc[dotpos + 1].isspace()
749 ):
745 # don't recognize '.' inside a number or word as 750 # don't recognize '.' inside a number or word as
746 # stop condition 751 # stop condition
747 dotpos = desc.find('.', dotpos + 1) 752 dotpos = desc.find('.', dotpos + 1)
748 if dotpos == -1: 753 if dotpos == -1:
749 break 754 break
1043 inTagSection = True 1048 inTagSection = True
1044 lastTag = desc.split(None, 1)[0] 1049 lastTag = desc.split(None, 1)[0]
1045 m = _signal(desc, 0) 1050 m = _signal(desc, 0)
1046 if m is None: 1051 if m is None:
1047 raise TagError("Wrong format in @signal line.\n") 1052 raise TagError("Wrong format in @signal line.\n")
1048 signalName = 1 and m.group("SignalName1") \ 1053 signalName = (
1049 or m.group("SignalName2") 1054 1 and m.group("SignalName1") or m.group("SignalName2")
1050 signalDesc = 1 and m.group("SignalDescription1") \ 1055 )
1051 or m.group("SignalDescription2") 1056 signalDesc = (
1057 1 and m.group("SignalDescription1") or
1058 m.group("SignalDescription2")
1059 )
1052 signalDict[signalName] = [] 1060 signalDict[signalName] = []
1053 if signalDesc is not None: 1061 if signalDesc is not None:
1054 signalDict[signalName].append(signalDesc) 1062 signalDict[signalName].append(signalDesc)
1055 lastItem = signalDict[signalName] 1063 lastItem = signalDict[signalName]
1056 elif desc.startswith("@event"): 1064 elif desc.startswith("@event"):
1058 lastTag = desc.split(None, 1)[0] 1066 lastTag = desc.split(None, 1)[0]
1059 m = _event(desc, 0) 1067 m = _event(desc, 0)
1060 if m is None: 1068 if m is None:
1061 raise TagError( 1069 raise TagError(
1062 "Wrong format in {0} line.\n".format(parts[0])) 1070 "Wrong format in {0} line.\n".format(parts[0]))
1063 eventName = 1 and m.group("EventName1") \ 1071 eventName = (
1064 or m.group("EventName2") 1072 1 and m.group("EventName1") or m.group("EventName2")
1065 eventDesc = 1 and m.group("EventDescription1") \ 1073 )
1066 or m.group("EventDescription2") 1074 eventDesc = (
1075 1 and m.group("EventDescription1") or
1076 m.group("EventDescription2")
1077 )
1067 eventDict[eventName] = [] 1078 eventDict[eventName] = []
1068 if eventDesc is not None: 1079 if eventDesc is not None:
1069 eventDict[eventName].append(eventDesc) 1080 eventDict[eventName].append(eventDesc)
1070 lastItem = eventDict[eventName] 1081 lastItem = eventDict[eventName]
1071 elif desc.startswith("@deprecated"): 1082 elif desc.startswith("@deprecated"):

eric ide

mercurial