Issue #15502: Refactor some code.

This commit is contained in:
Brett Cannon 2012-08-10 17:41:23 -04:00
parent e9175bd0af
commit f410ce8c09
3 changed files with 4205 additions and 4202 deletions

View File

@ -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

View File

@ -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.

File diff suppressed because it is too large Load Diff