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 source diff could not be displayed because it is too large. You can view the blob instead.
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