summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2014-01-04 22:09:28 (GMT)
committerEric Snow <ericsnowcurrently@gmail.com>2014-01-04 22:09:28 (GMT)
commit335e14dd1adb302bc0e5b99534ccfca43c7a4d6c (patch)
treeb1811cf83507b2581112ab8a53ab28a7fee62a68
parentd749c7ae683a98bb2f0c1ac3c9ac2d3c5bb6e51f (diff)
downloadcpython-335e14dd1adb302bc0e5b99534ccfca43c7a4d6c.zip
cpython-335e14dd1adb302bc0e5b99534ccfca43c7a4d6c.tar.gz
cpython-335e14dd1adb302bc0e5b99534ccfca43c7a4d6c.tar.bz2
Issue #19713: Move away from using find_module/load_module.
-rw-r--r--Lib/test/test_tools.py9
-rw-r--r--Misc/NEWS2
-rw-r--r--setup.py6
3 files changed, 12 insertions, 5 deletions
diff --git a/Lib/test/test_tools.py b/Lib/test/test_tools.py
index f971515..1bf7d54 100644
--- a/Lib/test/test_tools.py
+++ b/Lib/test/test_tools.py
@@ -6,6 +6,7 @@ Tools directory of a Python checkout or tarball, such as reindent.py.
import os
import sys
+import importlib._bootstrap
import importlib.machinery
import unittest
from unittest import mock
@@ -405,8 +406,8 @@ class PdepsTests(unittest.TestCase):
@classmethod
def setUpClass(self):
path = os.path.join(scriptsdir, 'pdeps.py')
- loader = importlib.machinery.SourceFileLoader('pdeps', path)
- self.pdeps = loader.load_module()
+ spec = importlib.util.spec_from_file_location('pdeps', path)
+ self.pdeps = importlib._bootstrap._SpecMethods(spec).load()
@classmethod
def tearDownClass(self):
@@ -430,8 +431,8 @@ class Gprof2htmlTests(unittest.TestCase):
def setUp(self):
path = os.path.join(scriptsdir, 'gprof2html.py')
- loader = importlib.machinery.SourceFileLoader('gprof2html', path)
- self.gprof = loader.load_module()
+ spec = importlib.util.spec_from_file_location('gprof2html', path)
+ self.gprof = importlib._bootstrap._SpecMethods(spec).load()
oldargv = sys.argv
def fixup():
sys.argv = oldargv
diff --git a/Misc/NEWS b/Misc/NEWS
index e56f9ce2..e048888 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -255,6 +255,8 @@ Library
- Issue #6477: Added support for pickling the types of built-in singletons
(i.e., Ellipsis, NotImplemented, None).
+- Issue #19713: Move away from using find_module/load_module.
+
- Issue #19851: Fixed a regression in reloading sub-modules.
- ssl.create_default_context() sets OP_NO_COMPRESSION to prevent CRIME.
diff --git a/setup.py b/setup.py
index 102d4ea..448d605 100644
--- a/setup.py
+++ b/setup.py
@@ -3,6 +3,8 @@
import sys, os, importlib.machinery, re, optparse
from glob import glob
+import importlib._bootstrap
+import importlib.util
import sysconfig
from distutils import log
@@ -327,8 +329,10 @@ class PyBuildExt(build_ext):
return
loader = importlib.machinery.ExtensionFileLoader(ext.name, ext_filename)
+ spec = importlib.util.spec_from_file_location(ext.name, ext_filename,
+ loader=loader)
try:
- loader.load_module()
+ importlib._bootstrap._SpecMethods(spec).load()
except ImportError as why:
self.failed.append(ext.name)
self.announce('*** WARNING: renaming "%s" since importing it'