cpython: 57d558f1904d (original) (raw)

Mercurial > cpython

changeset 76566:57d558f1904d

Issue #14605: Make explicit the entries on sys.path_hooks that used to be implicit. Added a warning for when sys.path_hooks is found to be empty. Also changed the meaning of None in sys.path_importer_cache to represent trying sys.path_hooks again (an interpretation of previous semantics). Also added a warning for when None was found. The long-term goal is for None in sys.path_importer_cache to represent the same as imp.NullImporter: no finder found for that sys.path entry. [#14605]

Brett Cannon brett@python.org
date Wed, 25 Apr 2012 20:54:04 -0400
parents bc91c251a4e9
children c52caa0a8056
files Lib/importlib/_bootstrap.py Lib/importlib/test/import_/test_fromlist.py Lib/importlib/test/import_/test_path.py Lib/pkgutil.py Lib/runpy.py Lib/test/test_cmd_line_script.py Misc/NEWS Python/importlib.h Python/pythonrun.c
diffstat 9 files changed, 71 insertions(+), 126 deletions(-)[+] [-] Lib/importlib/_bootstrap.py 64 Lib/importlib/test/import_/test_fromlist.py 4 Lib/importlib/test/import_/test_path.py 82 Lib/pkgutil.py 13 Lib/runpy.py 12 Lib/test/test_cmd_line_script.py 15 Misc/NEWS 5 Python/importlib.h 0 Python/pythonrun.c 2

line wrap: on

line diff

--- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -752,15 +752,15 @@ class PathFinder: """Meta path finder for sys.(path|path_hooks|path_importer_cache).""" @classmethod

If 'hooks' is false then use sys.path_hooks. """

@@ -770,14 +770,11 @@ class PathFinder: path=path) @classmethod

If the path is not in the cache, find the appropriate finder and cache

-

@@ -790,9 +787,13 @@ class PathFinder: finder = cls._path_hooks(path) sys.path_importer_cache[path] = finder else:

@@ -931,29 +932,6 @@ class FileFinder:

Import itself ###############################################################

-_DEFAULT_PATH_HOOK = None # Set in _setup() - -class _DefaultPathFinder(PathFinder): -

-

-

- - class _ImportLockContext: """Context manager for the import lock.""" @@ -1008,7 +986,7 @@ def _sanity_check(name, package, level): raise ValueError("Empty module name") -_IMPLICIT_META_PATH = [BuiltinImporter, FrozenImporter, _DefaultPathFinder] +_IMPLICIT_META_PATH = [BuiltinImporter, FrozenImporter, PathFinder] _ERR_MSG = 'No module named {!r}' @@ -1203,12 +1181,6 @@ def _setup(sys_module, _imp_module): if builtin_os == 'nt': SOURCE_SUFFIXES.append('.pyw')

- def _install(sys_module, _imp_module): """Install importlib as the implementation of import. @@ -1218,6 +1190,8 @@ def _install(sys_module, _imp_module): """ _setup(sys_module, _imp_module)

--- a/Lib/importlib/test/import_/test_fromlist.py +++ b/Lib/importlib/test/import_/test_fromlist.py @@ -1,6 +1,7 @@ """Test that the semantics relating to the 'fromlist' argument are correct.""" from .. import util from . import util as import_util +import imp import unittest class ReturnValue(unittest.TestCase): @@ -73,7 +74,8 @@ class HandlingFromlist(unittest.TestCase def test_no_module_from_package(self): # [no module] with util.mock_modules('pkg.init') as importer:

--- a/Lib/importlib/test/import_/test_path.py +++ b/Lib/importlib/test/import_/test_path.py @@ -9,6 +9,7 @@ import tempfile from test import support from types import MethodType import unittest +import warnings class FinderTests(unittest.TestCase): @@ -64,12 +65,18 @@ class FinderTests(unittest.TestCase): self.assertTrue(path in sys.path_importer_cache) self.assertTrue(sys.path_importer_cache[path] is importer)

def test_path_importer_cache_has_None_continues(self): # Test that having None in sys.path_importer_cache causes the search to @@ -78,9 +85,16 @@ class FinderTests(unittest.TestCase): module = '' importer = util.mock_modules(module) with util.import_state(path=['1', '2'],

def test_path_importer_cache_empty_string(self): # The empty string should create a finder using the cwd. @@ -94,57 +108,9 @@ class FinderTests(unittest.TestCase): self.assertIn(os.curdir, sys.path_importer_cache) -class DefaultPathFinderTests(unittest.TestCase): -

-

- -

- - def test_main(): from test.support import run_unittest

if name == 'main': test_main()

--- a/Lib/pkgutil.py +++ b/Lib/pkgutil.py @@ -379,18 +379,15 @@ def get_importer(path_item): for path_hook in sys.path_hooks: try: importer = path_hook(path_item)

-

--- a/Lib/runpy.py +++ b/Lib/runpy.py @@ -9,6 +9,7 @@ importers when locating support scripts

Written by Nick Coghlan

to implement PEP 338 (Executing Modules as Scripts)

+import os import sys import imp from pkgutil import read_code @@ -94,7 +95,7 @@ def _get_filename(loader, mod_name): for attr in ("get_filename", "_get_filename"): meth = getattr(loader, attr, None) if meth is not None:

Helper to get the loader, code and filename for a module

@@ -198,10 +199,6 @@ def _get_importer(path_name): try: importer = cache[path_name] except KeyError:

@@ -213,10 +210,7 @@ def _get_importer(path_name): # NullImporter throws ImportError if the supplied path is a # valid directory entry (and hence able to be handled # by the standard import machinery)

--- a/Lib/test/test_cmd_line_script.py +++ b/Lib/test/test_cmd_line_script.py @@ -1,5 +1,6 @@

tests command line execution of scripts

+import importlib import unittest import sys import os @@ -49,12 +50,16 @@ print('cwd==%a' % os.getcwd()) """ def _make_test_script(script_dir, script_basename, source=test_source):

def _make_test_zip_pkg(zip_dir, zip_basename, pkg_name, script_basename, source=test_source, depth=1):

There's no easy way to pass the script directory in to get

-m to work (avoiding that is the whole point of making

@@ -72,7 +77,9 @@ def _make_launch_script(script_dir, scri else: path = repr(path) source = launch_source % (path, module_name)

class CmdLineTest(unittest.TestCase): def _check_output(self, script_name, exit_code, data,

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,11 @@ What's New in Python 3.3.0 Alpha 3? Core and Builtins ----------------- +- Issue #14605: No longer have implicit entries in sys.path_hooks. If

index 991334e6316f63a1c5e7bd01307b045cffd9798e..7a83c0239cb1e9ca030daf74a03bfe3c6859b220 GIT binary patch literal 170009 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

--- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -229,7 +229,7 @@ import_init(PyInterpreterState *interp, Py_FatalError("Py_Initialize: can't save _imp to sys.modules"); }