--- a/src/eric7/QScintilla/DocstringGenerator/BaseDocstringGenerator.py Tue Nov 08 11:34:19 2022 +0100 +++ b/src/eric7/QScintilla/DocstringGenerator/BaseDocstringGenerator.py Tue Nov 08 11:50:50 2022 +0100 @@ -7,6 +7,7 @@ Module implementing a docstring generator base class. """ +import importlib import re from PyQt6.QtCore import Qt @@ -141,24 +142,21 @@ @return list of docstring lines @rtype str """ - if docstringType == "ericdoc": - from .EricdocGenerator import generateEricDoc # __IGNORE_WARNING_I101__ - - return generateEricDoc(functionInfo) - elif docstringType == "numpydoc": - from .NumpydocGenerator import generateNumpyDoc # __IGNORE_WARNING_I101__ + generatorModuleMapping = { + "ericdoc": "EricdocGenerator", + "numpydoc": "NumpydocGenerator", + "goodledoc": "GoogledocGenerator", + "sphinxdoc": "SphinxdocGenerator", + } + if docstringType in generatorModuleMapping: + mod = importlib.import_module( + "eric7.QScintilla.DocstringGenerator.{0}".format( + generatorModuleMapping[docstringType] + ) + ) + return mod.generateDoc(functionInfo, self.editor) - return generateNumpyDoc(functionInfo) - elif docstringType == "googledoc": - from .GoogledocGenerator import generateGoogleDoc # __IGNORE_WARNING_I101__ - - return generateGoogleDoc(functionInfo, self.editor) - elif docstringType == "sphinxdoc": - from .SphinxdocGenerator import generateSphinxDoc # __IGNORE_WARNING_I101__ - - return generateSphinxDoc(functionInfo) - else: - return [] + return [] class FunctionInfo: