Issue #15502: Refactor some code.
This commit is contained in:
parent
e9175bd0af
commit
f410ce8c09
|
@ -607,6 +607,21 @@ def _requires_frozen(fxn):
|
||||||
return _requires_frozen_wrapper
|
return _requires_frozen_wrapper
|
||||||
|
|
||||||
|
|
||||||
|
def _find_module_shim(self, fullname):
|
||||||
|
"""Try to find a loader for the specified module by delegating to
|
||||||
|
self.find_loader()."""
|
||||||
|
# Call find_loader(). If it returns a string (indicating this
|
||||||
|
# is a namespace package portion), generate a warning and
|
||||||
|
# return None.
|
||||||
|
loader, portions = self.find_loader(fullname)
|
||||||
|
if loader is None and len(portions):
|
||||||
|
msg = "Not importing directory {}: missing __init__"
|
||||||
|
_warnings.warn(msg.format(portions[0]), ImportWarning)
|
||||||
|
return loader
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Loaders #####################################################################
|
# Loaders #####################################################################
|
||||||
|
|
||||||
class BuiltinImporter:
|
class BuiltinImporter:
|
||||||
|
@ -1305,17 +1320,7 @@ class FileFinder:
|
||||||
"""Invalidate the directory mtime."""
|
"""Invalidate the directory mtime."""
|
||||||
self._path_mtime = -1
|
self._path_mtime = -1
|
||||||
|
|
||||||
def find_module(self, fullname):
|
find_module = _find_module_shim
|
||||||
"""Try to find a loader for the specified module."""
|
|
||||||
# Call find_loader(). If it returns a string (indicating this
|
|
||||||
# is a namespace package portion), generate a warning and
|
|
||||||
# return None.
|
|
||||||
loader, portions = self.find_loader(fullname)
|
|
||||||
assert len(portions) in [0, 1]
|
|
||||||
if loader is None and len(portions):
|
|
||||||
msg = "Not importing directory {}: missing __init__"
|
|
||||||
_warnings.warn(msg.format(portions[0]), ImportWarning)
|
|
||||||
return loader
|
|
||||||
|
|
||||||
def find_loader(self, fullname):
|
def find_loader(self, fullname):
|
||||||
"""Try to find a loader for the specified module, or the namespace
|
"""Try to find a loader for the specified module, or the namespace
|
||||||
|
|
|
@ -78,10 +78,7 @@ class PathEntryFinder(Finder):
|
||||||
"""
|
"""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def find_module(self, fullname):
|
find_module = _bootstrap._find_module_shim
|
||||||
"""Compatibility function which is the equivalent of
|
|
||||||
self.find_loader(fullname)[0]."""
|
|
||||||
return self.find_loader(fullname)[0]
|
|
||||||
|
|
||||||
def invalidate_caches(self):
|
def invalidate_caches(self):
|
||||||
"""An optional method for clearing the finder's cache, if any.
|
"""An optional method for clearing the finder's cache, if any.
|
||||||
|
|
8375
Python/importlib.h
8375
Python/importlib.h
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue