eric7/DocumentationTools/ModuleDocumentor.py

branch
eric7
changeset 8598
0460087da31b
parent 8596
d64760b2da50
child 8761
f05818ae6431
--- a/eric7/DocumentationTools/ModuleDocumentor.py	Mon Sep 13 18:00:33 2021 +0200
+++ b/eric7/DocumentationTools/ModuleDocumentor.py	Mon Sep 13 18:27:17 2021 +0200
@@ -66,65 +66,12 @@
         """
         Constructor
         
-        @param outputDir The output directory for the files
+        @param module information of the parsed Python file
         @type str
         """
         self.module = module
         self.empty = True
         
-        # TODO: replace these assignments
-        self.headerTemplate = TemplatesListsStyleCSS.headerTemplate
-        self.footerTemplate = TemplatesListsStyleCSS.footerTemplate
-        self.moduleTemplate = TemplatesListsStyleCSS.moduleTemplate
-        self.rbFileTemplate = TemplatesListsStyleCSS.rbFileTemplate
-        self.classTemplate = TemplatesListsStyleCSS.classTemplate
-        self.methodTemplate = TemplatesListsStyleCSS.methodTemplate
-        self.constructorTemplate = (
-            TemplatesListsStyleCSS.constructorTemplate)
-        self.rbModuleTemplate = TemplatesListsStyleCSS.rbModuleTemplate
-        self.rbModulesClassTemplate = (
-            TemplatesListsStyleCSS.rbModulesClassTemplate)
-        self.functionTemplate = TemplatesListsStyleCSS.functionTemplate
-        self.listTemplate = TemplatesListsStyleCSS.listTemplate
-        self.listEntryTemplate = TemplatesListsStyleCSS.listEntryTemplate
-        self.listEntryNoneTemplate = (
-            TemplatesListsStyleCSS.listEntryNoneTemplate)
-        self.listEntryDeprecatedTemplate = (
-            TemplatesListsStyleCSS.listEntryDeprecatedTemplate)
-        self.listEntrySimpleTemplate = (
-            TemplatesListsStyleCSS.listEntrySimpleTemplate)
-        self.paragraphTemplate = TemplatesListsStyleCSS.paragraphTemplate
-        self.parametersListTemplate = (
-            TemplatesListsStyleCSS.parametersListTemplate)
-        self.parameterTypesListEntryTemplate = (
-            TemplatesListsStyleCSS.parameterTypesListEntryTemplate)
-        self.parametersListEntryTemplate = (
-            TemplatesListsStyleCSS.parametersListEntryTemplate)
-        self.returnsTemplate = TemplatesListsStyleCSS.returnsTemplate
-        self.returnTypesTemplate = (
-            TemplatesListsStyleCSS.returnTypesTemplate)
-        self.yieldsTemplate = TemplatesListsStyleCSS.yieldsTemplate
-        self.yieldTypesTemplate = (
-            TemplatesListsStyleCSS.yieldTypesTemplate)
-        self.exceptionsListTemplate = (
-            TemplatesListsStyleCSS.exceptionsListTemplate)
-        self.exceptionsListEntryTemplate = (
-            TemplatesListsStyleCSS.exceptionsListEntryTemplate)
-        self.signalsListTemplate = (
-            TemplatesListsStyleCSS.signalsListTemplate)
-        self.signalsListEntryTemplate = (
-            TemplatesListsStyleCSS.signalsListEntryTemplate)
-        self.eventsListTemplate = TemplatesListsStyleCSS.eventsListTemplate
-        self.eventsListEntryTemplate = (
-            TemplatesListsStyleCSS.eventsListEntryTemplate)
-        self.deprecatedTemplate = TemplatesListsStyleCSS.deprecatedTemplate
-        self.authorInfoTemplate = TemplatesListsStyleCSS.authorInfoTemplate
-        self.seeListTemplate = TemplatesListsStyleCSS.seeListTemplate
-        self.seeListEntryTemplate = (
-            TemplatesListsStyleCSS.seeListEntryTemplate)
-        self.seeLinkTemplate = TemplatesListsStyleCSS.seeLinkTemplate
-        self.sinceInfoTemplate = TemplatesListsStyleCSS.sinceInfoTemplate
-        
         self.keywords = []
         # list of tuples containing the name (string) and
         # the ref (string). The ref is without the filename part.
@@ -174,11 +121,11 @@
         @return The source code documentation. (string)
         """
         doc = (
-            self.headerTemplate.format(
+            TemplatesListsStyleCSS.headerTemplate.format(
                 **{'Title': self.module.name}
             ) +
             self.__genModuleSection() +
-            self.footerTemplate
+            TemplatesListsStyleCSS.footerTemplate
         )
         self.generated = True
         return doc
@@ -195,7 +142,7 @@
         try:
             if self.module.type == RB_SOURCE:
                 rbModulesList = self.__genRbModulesListSection()
-                modBody = self.rbFileTemplate.format(
+                modBody = TemplatesListsStyleCSS.rbFileTemplate.format(
                     **{'Module': self.module.name,
                        'ModuleDescription':
                         self.__formatDescription(self.module.description),
@@ -205,7 +152,7 @@
                        'FunctionList': functionList,
                        })
             else:
-                modBody = self.moduleTemplate.format(
+                modBody = TemplatesListsStyleCSS.moduleTemplate.format(
                     **{'Module': self.module.name,
                        'ModuleDescription':
                         self.__formatDescription(self.module.description),
@@ -244,14 +191,14 @@
         """
         lst = []
         for name in names:
-            lst.append(self.listEntryTemplate.format(
+            lst.append(TemplatesListsStyleCSS.listEntryTemplate.format(
                 **{'Link': "{0}".format(name),
                    'Name': sectionDict[name].name,
                    'Description':
                     self.__getShortDescription(sectionDict[name].description),
                    'Deprecated':
                     self.__checkDeprecated(sectionDict[name].description) and
-                    self.listEntryDeprecatedTemplate or "",
+                    TemplatesListsStyleCSS.listEntryDeprecatedTemplate or "",
                    }))
             n = ("{0} ({1})".format(name, kwSuffix) if kwSuffix
                  else "{0}".format(name))
@@ -272,12 +219,12 @@
                            if not scope.globals[attr].isSignal)
         s = (
             ''.join(
-                [self.listEntrySimpleTemplate.format(**{'Name': name})
-                 for name in attrNames])
+                [TemplatesListsStyleCSS.listEntrySimpleTemplate
+                 .format(**{'Name': name}) for name in attrNames])
             if attrNames else
-            self.listEntryNoneTemplate
+            TemplatesListsStyleCSS.listEntryNoneTemplate
         )
-        return self.listTemplate.format(**{'Entries': s})
+        return TemplatesListsStyleCSS.listTemplate.format(**{'Entries': s})
         
     def __genClassListSection(self):
         """
@@ -291,8 +238,8 @@
             self.empty = False
             s = self.__genListSection(names, self.module.classes)
         else:
-            s = self.listEntryNoneTemplate
-        return self.listTemplate.format(**{'Entries': s})
+            s = TemplatesListsStyleCSS.listEntryNoneTemplate
+        return TemplatesListsStyleCSS.listTemplate.format(**{'Entries': s})
         
     def __genRbModulesListSection(self):
         """
@@ -306,8 +253,8 @@
             self.empty = False
             s = self.__genListSection(names, self.module.modules)
         else:
-            s = self.listEntryNoneTemplate
-        return self.listTemplate.format(**{'Entries': s})
+            s = TemplatesListsStyleCSS.listEntryNoneTemplate
+        return TemplatesListsStyleCSS.listTemplate.format(**{'Entries': s})
         
     def __genFunctionListSection(self):
         """
@@ -321,8 +268,8 @@
             self.empty = False
             s = self.__genListSection(names, self.module.functions)
         else:
-            s = self.listEntryNoneTemplate
-        return self.listTemplate.format(**{'Entries': s})
+            s = TemplatesListsStyleCSS.listEntryNoneTemplate
+        return TemplatesListsStyleCSS.listTemplate.format(**{'Entries': s})
         
     def __genClassesSection(self):
         """
@@ -347,7 +294,7 @@
                 _class, className, Function.Static)
             
             try:
-                clsBody = self.classTemplate.format(
+                clsBody = TemplatesListsStyleCSS.classTemplate.format(
                     **{'Anchor': className,
                        'Class': _class.name,
                        'ClassSuper': supers,
@@ -390,28 +337,29 @@
         lst = []
         if includeInit:
             with contextlib.suppress(KeyError):
-                lst.append(self.listEntryTemplate.format(
+                lst.append(TemplatesListsStyleCSS.listEntryTemplate.format(
                     **{'Link': "{0}.{1}".format(className, '__init__'),
                        'Name': clsName,
                        'Description': self.__getShortDescription(
                            sectionDict['__init__'].description),
                        'Deprecated': self.__checkDeprecated(
                            sectionDict['__init__'].description) and
-                        self.listEntryDeprecatedTemplate or "",
+                        TemplatesListsStyleCSS.listEntryDeprecatedTemplate or
+                        "",
                        }))
                 self.keywords.append(
                     ("{0} (Constructor)".format(className),
                      "#{0}.{1}".format(className, '__init__')))
         
         for name in names:
-            lst.append(self.listEntryTemplate.format(
+            lst.append(TemplatesListsStyleCSS.listEntryTemplate.format(
                 **{'Link': "{0}.{1}".format(className, name),
                    'Name': sectionDict[name].name,
                    'Description':
                     self.__getShortDescription(sectionDict[name].description),
                    'Deprecated':
                     self.__checkDeprecated(sectionDict[name].description) and
-                    self.listEntryDeprecatedTemplate or "",
+                    TemplatesListsStyleCSS.listEntryDeprecatedTemplate or "",
                    }))
             self.keywords.append(("{0}.{1}".format(className, name),
                                   "#{0}.{1}".format(className, name)))
@@ -433,7 +381,7 @@
         if '__init__' in methods:
             methods.remove('__init__')
             try:
-                methBody = self.constructorTemplate.format(
+                methBody = TemplatesListsStyleCSS.constructorTemplate.format(
                     **{'Anchor': className,
                        'Class': obj.name,
                        'Method': '__init__',
@@ -461,7 +409,7 @@
             methodClassifier = ""
         for method in methods:
             try:
-                methBody = self.methodTemplate.format(
+                methBody = TemplatesListsStyleCSS.methodTemplate.format(
                     **{'Anchor': className,
                        'Class': obj.name,
                        'Method': obj.methods[method].name,
@@ -486,9 +434,9 @@
             includeInit=modifierFilter == Function.General)
         
         if not methList:
-            methList = self.listEntryNoneTemplate
-        return (self.listTemplate.format(**{'Entries': methList}),
-                ''.join(methBodies))
+            methList = TemplatesListsStyleCSS.listEntryNoneTemplate
+        return (TemplatesListsStyleCSS.listTemplate
+                .format(**{'Entries': methList}), ''.join(methBodies))
         
     def __genRbModulesSection(self):
         """
@@ -508,7 +456,7 @@
                 rbModule, rbModuleName)
             
             try:
-                rbmBody = self.rbModuleTemplate.format(
+                rbmBody = TemplatesListsStyleCSS.rbModuleTemplate.format(
                     **{'Anchor': rbModuleName,
                        'Module': rbModule.name,
                        'ModuleDescription':
@@ -552,7 +500,7 @@
                 _class, className, Function.General)
             
             try:
-                clsBody = self.rbModulesClassTemplate.format(
+                clsBody = TemplatesListsStyleCSS.rbModulesClassTemplate.format(
                     **{'Anchor': className,
                        'Class': _class.name,
                        'ClassSuper': supers,
@@ -576,9 +524,9 @@
             classNames, obj.classes, modName)
         
         if not classesList:
-            classesList = self.listEntryNoneTemplate
-        return (self.listTemplate.format(**{'Entries': classesList}),
-                ''.join(classes))
+            classesList = TemplatesListsStyleCSS.listEntryNoneTemplate
+        return (TemplatesListsStyleCSS.listTemplate
+                .format(**{'Entries': classesList}), ''.join(classes))
         
     def __genRbModulesClassesListSection(self, names, sectionDict, moduleName):
         """
@@ -593,14 +541,14 @@
         """
         lst = []
         for name in names:
-            lst.append(self.listEntryTemplate.format(
+            lst.append(TemplatesListsStyleCSS.listEntryTemplate.format(
                 **{'Link': "{0}.{1}".format(moduleName, name),
                    'Name': sectionDict[name].name,
                    'Description':
                     self.__getShortDescription(sectionDict[name].description),
                    'Deprecated':
                     self.__checkDeprecated(sectionDict[name].description) and
-                    self.listEntryDeprecatedTemplate or "",
+                    TemplatesListsStyleCSS.listEntryDeprecatedTemplate or "",
                    }))
             self.keywords.append(("{0}.{1}".format(moduleName, name),
                                   "#{0}.{1}".format(moduleName, name)))
@@ -617,7 +565,7 @@
         funcNames = sorted(list(self.module.functions.keys()))
         for funcName in funcNames:
             try:
-                funcBody = self.functionTemplate.format(
+                funcBody = TemplatesListsStyleCSS.functionTemplate.format(
                     **{'Anchor': funcName,
                        'Function': self.module.functions[funcName].name,
                        'FunctionDescription': self.__formatDescription(
@@ -716,11 +664,11 @@
                 else:
                     linelist.append(html_uencode(line))
             else:
-                lst.append(self.paragraphTemplate.format(
+                lst.append(TemplatesListsStyleCSS.paragraphTemplate.format(
                     **{'Lines': '\n'.join(linelist)}))
                 linelist = []
         if linelist:
-            lst.append(self.paragraphTemplate.format(
+            lst.append(TemplatesListsStyleCSS.paragraphTemplate.format(
                 **{'Lines': '\n'.join(linelist)}))
         return ''.join(lst)
         
@@ -753,16 +701,23 @@
         lst = []
         for name, type_, lines in _list:
             if type_:
-                lst.append(self.parameterTypesListEntryTemplate.format(
-                    **{'Name': name,
-                       'Type': type_,
-                       'Description': html_uencode('\n'.join(lines)),
-                       }))
+                lst.append(
+                    TemplatesListsStyleCSS.parameterTypesListEntryTemplate
+                    .format(
+                        **{'Name': name,
+                           'Type': type_,
+                           'Description': html_uencode('\n'.join(lines)),
+                           }
+                    )
+                )
             else:
-                lst.append(self.parametersListEntryTemplate.format(
-                    **{'Name': name,
-                       'Description': html_uencode('\n'.join(lines)),
-                       }))
+                lst.append(
+                    TemplatesListsStyleCSS.parametersListEntryTemplate.format(
+                        **{'Name': name,
+                           'Description': html_uencode('\n'.join(lines)),
+                           }
+                    )
+                )
         return ''.join(lst)
         
     def __formatCrossReferenceEntry(self, entry):
@@ -794,7 +749,7 @@
                 reference = "{0}#{1}".format(reference, anchor)
             entry = 'href="{0}">{1}</a>'.format(reference, label)
         
-        return self.seeLinkTemplate.format(**{'Link': entry})
+        return TemplatesListsStyleCSS.seeLinkTemplate.format(**{'Link': entry})
         
     def __genSeeListSection(self, _list, template):
         """
@@ -1080,7 +1035,7 @@
         description = self.__genParagraphs(paragraphs) if paragraphs else ""
         
         parameterSect = (
-            self.parametersListTemplate.format(
+            TemplatesListsStyleCSS.parametersListTemplate.format(
                 **{'Parameters': self.__genParamDescriptionListSection(
                     paramList)})
             if paramList else
@@ -1088,82 +1043,88 @@
         )
         
         returnSect = (
-            self.returnsTemplate.format(
+            TemplatesListsStyleCSS.returnsTemplate.format(
                 html_uencode('\n'.join(returns)))
             if returns else
             ""
         )
         
         returnTypesSect = (
-            self.returnTypesTemplate.format(
+            TemplatesListsStyleCSS.returnTypesTemplate.format(
                 html_uencode('\n'.join(returnTypes)))
             if returnTypes else
             ""
         )
         
         yieldSect = (
-            self.yieldsTemplate.format(
+            TemplatesListsStyleCSS.yieldsTemplate.format(
                 html_uencode('\n'.join(yields)))
             if yields else
             ""
         )
         
         yieldTypesSect = (
-            self.yieldTypesTemplate.format(
+            TemplatesListsStyleCSS.yieldTypesTemplate.format(
                 html_uencode('\n'.join(yieldTypes)))
             if yieldTypes else
             ""
         )
         
         exceptionSect = (
-            self.exceptionsListTemplate.format(
+            TemplatesListsStyleCSS.exceptionsListTemplate.format(
                 **{'Exceptions': self.__genDescriptionListSection(
-                    exceptionDict, self.exceptionsListEntryTemplate)})
+                    exceptionDict,
+                    TemplatesListsStyleCSS.exceptionsListEntryTemplate)}
+            )
             if exceptionDict else
             ""
         )
         
         signalSect = (
-            self.signalsListTemplate.format(
+            TemplatesListsStyleCSS.signalsListTemplate.format(
                 **{'Signals': self.__genDescriptionListSection(
-                    signalDict, self.signalsListEntryTemplate)})
+                    signalDict,
+                    TemplatesListsStyleCSS.signalsListEntryTemplate)}
+            )
             if signalDict else
             ""
         )
         
         eventSect = (
-            self.eventsListTemplate.format(
+            TemplatesListsStyleCSS.eventsListTemplate.format(
                 **{'Events': self.__genDescriptionListSection(
-                    eventDict, self.eventsListEntryTemplate)})
+                    eventDict,
+                    TemplatesListsStyleCSS.eventsListEntryTemplate)}
+            )
             if eventDict else
             ""
         )
         
         deprecatedSect = (
-            self.deprecatedTemplate.format(
+            TemplatesListsStyleCSS.deprecatedTemplate.format(
                 **{'Lines': html_uencode('\n'.join(deprecated))})
             if deprecated else
             ""
         )
         
         authorInfoSect = (
-            self.authorInfoTemplate.format(
+            TemplatesListsStyleCSS.authorInfoTemplate.format(
                 **{'Authors': html_uencode('\n'.join(authorInfo))})
             if authorInfo else
             ""
         )
         
         sinceInfoSect = (
-            self.sinceInfoTemplate.format(
+            TemplatesListsStyleCSS.sinceInfoTemplate.format(
                 **{'Info': html_uencode(sinceInfo[0])})
             if sinceInfo else
             ""
         )
         
         seeSect = (
-            self.seeListTemplate.format(
+            TemplatesListsStyleCSS.seeListTemplate.format(
                 **{'Links': self.__genSeeListSection(
-                    seeList, self.seeListEntryTemplate)})
+                    seeList, TemplatesListsStyleCSS.seeListEntryTemplate)})
             if seeList else
             ''
         )

eric ide

mercurial