diff -r 29d2c2e5b948 -r 4370a8b30648 eric6/DebugClients/Python/ModuleLoader.py --- a/eric6/DebugClients/Python/ModuleLoader.py Fri Dec 18 12:24:33 2020 +0100 +++ b/eric6/DebugClients/Python/ModuleLoader.py Fri Dec 18 12:44:31 2020 +0100 @@ -110,86 +110,49 @@ self.__enableImportHooks = True return module - if sys.version_info >= (3, 4): - def find_spec(self, fullname, path, target=None): - """ - Public method returning the module spec. - - @param fullname name of the module to be loaded - @type str - @param path path to resolve the module name - @type str - @param target module object to use for a more educated guess - about what spec to return - @type module - @return module spec object pointing to the module loader - @rtype ModuleSpec - """ - if fullname in sys.modules or not self.__dbgClient.debugging: - return None - - if ( - fullname in self.__modulesToPatch and - self.__enableImportHooks - ): - # Disable hook to be able to import original module - self.__enableImportHooks = False - return importlib.machinery.ModuleSpec(fullname, self) - + def find_spec(self, fullname, path, target=None): + """ + Public method returning the module spec. + + @param fullname name of the module to be loaded + @type str + @param path path to resolve the module name + @type str + @param target module object to use for a more educated guess + about what spec to return + @type module + @return module spec object pointing to the module loader + @rtype ModuleSpec + """ + if fullname in sys.modules or not self.__dbgClient.debugging: return None - def create_module(self, spec): - """ - Public method to create a module based on the passed in spec. - - @param spec module spec object for loading the module - @type ModuleSpec - @return created and patched module - @rtype module - """ - return self.__loadModule(spec.name) + if ( + fullname in self.__modulesToPatch and + self.__enableImportHooks + ): + # Disable hook to be able to import original module + self.__enableImportHooks = False + return importlib.machinery.ModuleSpec(fullname, self) - def exec_module(self, module): - """ - Public method to execute the created module. - - @param module module to be executed - @type module - """ - pass + return None - else: - def find_module(self, fullname, path=None): - """ - Public method returning the module loader. - - @param fullname name of the module to be loaded - @type str - @param path path to resolve the module name - @type str - @return module loader object - @rtype object - """ - if fullname in sys.modules or not self.__dbgClient.debugging: - return None - - if ( - fullname in self.__modulesToPatch and - self.__enableImportHooks - ): - # Disable hook to be able to import original module - self.__enableImportHooks = False - return self - - return None + def create_module(self, spec): + """ + Public method to create a module based on the passed in spec. - def load_module(self, fullname): - """ - Public method to load a module. - - @param fullname name of the module to be loaded - @type str - @return reference to the loaded module - @rtype module - """ - return self.__loadModule(fullname) + @param spec module spec object for loading the module + @type ModuleSpec + @return created and patched module + @rtype module + """ + return self.__loadModule(spec.name) + + def exec_module(self, module): + """ + Public method to execute the created module. + + @param module module to be executed + @type module + """ + pass