[Python-checkins] cpython: Issue #14764: Update importlib.test.benchmark to work in a world where

brett.cannon python-checkins at python.org
Fri May 11 17:12:16 CEST 2012


http://hg.python.org/cpython/rev/e1d0535372d0
changeset: 76873:e1d0535372d0
user: Brett Cannon <brett at python.org>
date: Fri May 11 11:12:00 2012 -0400
summary:
 Issue #14764: Update importlib.test.benchmark to work in a world where
import machinery is no longer implicit.
files:
 Lib/importlib/test/benchmark.py | 14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/Lib/importlib/test/benchmark.py b/Lib/importlib/test/benchmark.py
--- a/Lib/importlib/test/benchmark.py
+++ b/Lib/importlib/test/benchmark.py
@@ -9,6 +9,8 @@
 import decimal
 import imp
 import importlib
+import importlib._bootstrap
+import importlib.machinery
 import json
 import os
 import py_compile
@@ -68,6 +70,10 @@
 # Clears out sys.modules and puts an entry at the front of sys.path.
 with source_util.create_modules(name) as mapping:
 assert not os.path.exists(imp.cache_from_source(mapping[name]))
+ sys.meta_path.append(importlib.machinery.PathFinder)
+ loader = (importlib.machinery.SourceFileLoader,
+ importlib._bootstrap._SOURCE_SUFFIXES, True)
+ sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
 for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,
 seconds=seconds):
 yield result
@@ -102,6 +108,10 @@
 assert not sys.dont_write_bytecode
 name = '__importlib_test_benchmark__'
 with source_util.create_modules(name) as mapping:
+ sys.meta_path.append(importlib.machinery.PathFinder)
+ loader = (importlib.machinery.SourceFileLoader,
+ importlib._bootstrap._SOURCE_SUFFIXES, True)
+ sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
 def cleanup():
 sys.modules.pop(name)
 os.unlink(imp.cache_from_source(mapping[name]))
@@ -133,6 +143,10 @@
 """Source w/ bytecode: small"""
 name = '__importlib_test_benchmark__'
 with source_util.create_modules(name) as mapping:
+ sys.meta_path.append(importlib.machinery.PathFinder)
+ loader = (importlib.machinery.SourceFileLoader,
+ importlib._bootstrap._SOURCE_SUFFIXES, True)
+ sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
 py_compile.compile(mapping[name])
 assert os.path.exists(imp.cache_from_source(mapping[name]))
 for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /