Kaydet (Commit) f410ce8c authored tarafından Brett Cannon's avatar Brett Cannon

Issue #15502: Refactor some code.

üst e9175bd0
...@@ -607,6 +607,21 @@ def _requires_frozen(fxn): ...@@ -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: ...@@ -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): ...@@ -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.
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment