]> granicus.if.org Git - python/commitdiff
Issue #19713: Move away from using find_module/load_module.
authorEric Snow <ericsnowcurrently@gmail.com>
Sat, 4 Jan 2014 22:09:28 +0000 (15:09 -0700)
committerEric Snow <ericsnowcurrently@gmail.com>
Sat, 4 Jan 2014 22:09:28 +0000 (15:09 -0700)
Lib/test/test_tools.py
Misc/NEWS
setup.py

index f9715158993623352f8dcd20b58020b70c39da4b..1bf7d54c1ee5d6aceb8ca3451eb0626272c5c987 100644 (file)
@@ -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
index e56f9ce284d1109143116bce9d0378ccccffb50c..e0488883c041d3f7954ac104598a1b7b2c57ad99 100644 (file)
--- 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.
index 102d4ea8bc2d2c75a5804311f3f7d6b1103b69c0..448d605faffe99a8079e56b9ca8091bd72e316fe 100644 (file)
--- 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'