Tweak the handling of the empty string in sys.path for importlib.

It seems better to cache the finder for the cwd under its full path
insetad of '' in case the cwd changes. Otherwise FileFinder needs to
dynamically change itself based on whether it is given '' instead of
caching a finder for every change to the cwd.
This commit is contained in:
Brett Cannon 2012-02-16 18:12:00 -05:00
parent 22e7c88057
commit f58d45c649
2 changed files with 4 additions and 2 deletions

View File

@ -713,10 +713,12 @@ class PathFinder:
the default hook, for which ImportError is raised.
"""
if path == '':
path = _os.getcwd()
try:
finder = sys.path_importer_cache[path]
except KeyError:
finder = cls._path_hooks(path if path != '' else _os.getcwd())
finder = cls._path_hooks(path)
sys.path_importer_cache[path] = finder
else:
if finder is None and default:

View File

@ -82,7 +82,7 @@ class FinderTests(unittest.TestCase):
with util.import_state(path=[path], path_hooks=[hook]):
loader = machinery.PathFinder.find_module(module)
self.assertIs(loader, importer)
self.assertIn('', sys.path_importer_cache)
self.assertIn(os.getcwd(), sys.path_importer_cache)
class DefaultPathFinderTests(unittest.TestCase):