Skip to content

Commit df0e62c

Browse files
Deal with module importers that don't implement newer API.
1 parent 7262759 commit df0e62c

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/wrapt/importer.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,14 @@ class _ImportHookChainedLoader:
153153
def __init__(self, loader):
154154
self.loader = loader
155155

156-
def load_module(self, fullname):
156+
if hasattr(loader, "load_module"):
157+
self.load_module = self._load_module
158+
if hasattr(loader, "create_module"):
159+
self.create_module = self._create_module
160+
if hasattr(loader, "exec_module"):
161+
self.exec_module = self._exec_module
162+
163+
def _load_module(self, fullname):
157164
module = self.loader.load_module(fullname)
158165
notify_module_loaded(module)
159166

@@ -162,10 +169,10 @@ def load_module(self, fullname):
162169
# Python 3.4 introduced create_module() and exec_module() instead of
163170
# load_module() alone. Splitting the two steps.
164171

165-
def create_module(self, spec):
172+
def _create_module(self, spec):
166173
return self.loader.create_module(spec)
167174

168-
def exec_module(self, module):
175+
def _exec_module(self, module):
169176
self.loader.exec_module(module)
170177
notify_module_loaded(module)
171178

0 commit comments

Comments
 (0)