From: Mike Bayer Date: Fri, 13 Mar 2020 22:37:25 +0000 (-0400) Subject: import the module as passed before we look in sys.modules X-Git-Tag: rel_1_4_0b1~459^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64ccf4d02a497f0e584c544f5e5fb55d5cbf8c30;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git import the module as passed before we look in sys.modules in I2e291eba4297867fc0ddb5d875b9f7af34751d01, the importer is importing tokens[0:-1] and then the final token as the name; this doesn't always work for the two example modules of "xml.dom" and "wsgiref.simple_server". import the complete path we will pull from sys.modules directly. Change-Id: I833a770f4c3e7463fa56234d891870083e48cc73 --- diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py index bac95c7e3e..4744639815 100644 --- a/lib/sqlalchemy/util/langhelpers.py +++ b/lib/sqlalchemy/util/langhelpers.py @@ -1026,10 +1026,7 @@ class _ModuleRegistry: for module in self.module_registry: key = module.split("sqlalchemy.")[-1].replace(".", "_") if module.startswith(path) and key not in self.__dict__: - tokens = module.split(".") - compat.import_( - ".".join(tokens[0:-1]), globals(), locals(), [tokens[-1]] - ) + compat.import_(module, globals(), locals()) self.__dict__[key] = sys.modules[module]