Mon, 13 Sep 2021 18:27:17 +0200
Streamlined the documentation generator code.
--- a/eric7/Documentation/Source/eric7.DocumentationTools.ModuleDocumentor.html Mon Sep 13 18:00:33 2021 +0200 +++ b/eric7/Documentation/Source/eric7.DocumentationTools.ModuleDocumentor.html Mon Sep 13 18:27:17 2021 +0200 @@ -195,9 +195,9 @@ </p> <dl> -<dt><i>outputDir</i> (str)</dt> +<dt><i>module</i> (str)</dt> <dd> -The output directory for the files +information of the parsed Python file </dd> </dl> <a NAME="ModuleDocument.__checkDeprecated" ID="ModuleDocument.__checkDeprecated"></a>
--- a/eric7/DocumentationTools/IndexGenerator.py Mon Sep 13 18:00:33 2021 +0200 +++ b/eric7/DocumentationTools/IndexGenerator.py Mon Sep 13 18:27:17 2021 +0200 @@ -37,18 +37,7 @@ } } self.remembered = False - - # TODO: replace these assignments - self.headerTemplate = TemplatesListsStyleCSS.headerTemplate - self.footerTemplate = TemplatesListsStyleCSS.footerTemplate - self.indexBodyTemplate = TemplatesListsStyleCSS.indexBodyTemplate - self.indexListPackagesTemplate = ( - TemplatesListsStyleCSS.indexListPackagesTemplate) - self.indexListModulesTemplate = ( - TemplatesListsStyleCSS.indexListModulesTemplate) - self.indexListEntryTemplate = ( - TemplatesListsStyleCSS.indexListEntryTemplate) - + def remember(self, file, moduleDocument, basename=""): """ Public method to remember a documentation file. @@ -123,14 +112,18 @@ lst = [] for name in names: link = joinext("index-{0}".format(name), ".html") - lst.append(self.indexListEntryTemplate.format(**{ - "Description": subpacks[name], - "Name": name.split(".")[-1], - "Link": link, - })) - subpackages = self.indexListPackagesTemplate.format(**{ - "Entries": "".join(lst), - }) + lst.append( + TemplatesListsStyleCSS.indexListEntryTemplate.format(**{ + "Description": subpacks[name], + "Name": name.split(".")[-1], + "Link": link, + }) + ) + subpackages = ( + TemplatesListsStyleCSS.indexListPackagesTemplate.format(**{ + "Entries": "".join(lst), + }) + ) # 2) modules if package["modules"]: @@ -142,24 +135,28 @@ nam = name.split(".")[-1] if nam == "__init__": nam = name.split(".")[-2] - lst.append(self.indexListEntryTemplate.format(**{ - "Description": mods[name], - "Name": nam, - "Link": link, - })) - modules = self.indexListModulesTemplate.format(**{ - "Entries": "".join(lst), - }) + lst.append( + TemplatesListsStyleCSS.indexListEntryTemplate.format(**{ + "Description": mods[name], + "Name": nam, + "Link": link, + }) + ) + modules = ( + TemplatesListsStyleCSS.indexListModulesTemplate.format(**{ + "Entries": "".join(lst), + }) + ) doc = ( - self.headerTemplate.format( + TemplatesListsStyleCSS.headerTemplate.format( **{"Title": title} - ) + self.indexBodyTemplate.format( + ) + TemplatesListsStyleCSS.indexBodyTemplate.format( **{"Title": title, "Description": package["description"], "Subpackages": subpackages, "Modules": modules} - ) + self.footerTemplate + ) + TemplatesListsStyleCSS.footerTemplate ) with open(filename, "w", encoding="utf-8", newline=newline) as f:
--- 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 '' )