Issue #17177: Stop using imp in distutils

This commit is contained in:
Brett Cannon 2013-06-15 12:59:53 -04:00
parent 7822e123c4
commit 61c3556c14
7 changed files with 26 additions and 22 deletions

View File

@ -3,7 +3,7 @@
Implements the Distutils 'build_py' command."""
import os
import imp
import importlib.util
import sys
from glob import glob
@ -312,11 +312,11 @@ class build_py (Command):
outputs.append(filename)
if include_bytecode:
if self.compile:
outputs.append(imp.cache_from_source(filename,
debug_override=True))
outputs.append(importlib.util.cache_from_source(
filename, debug_override=True))
if self.optimize > 0:
outputs.append(imp.cache_from_source(filename,
debug_override=False))
outputs.append(importlib.util.cache_from_source(
filename, debug_override=False))
outputs += [
os.path.join(build_dir, filename)

View File

@ -4,7 +4,7 @@ Implements the Distutils 'install_lib' command
(install all Python modules)."""
import os
import imp
import importlib.util
import sys
from distutils.core import Command
@ -165,10 +165,10 @@ class install_lib(Command):
if ext != PYTHON_SOURCE_EXTENSION:
continue
if self.compile:
bytecode_files.append(imp.cache_from_source(
bytecode_files.append(importlib.util.cache_from_source(
py_file, debug_override=True))
if self.optimize > 0:
bytecode_files.append(imp.cache_from_source(
bytecode_files.append(importlib.util.cache_from_source(
py_file, debug_override=False))
return bytecode_files

View File

@ -1,7 +1,6 @@
"""Tests for distutils.command.bdist_dumb."""
import os
import imp
import sys
import zipfile
import unittest
@ -88,7 +87,7 @@ class BuildDumbTestCase(support.TempdirManager,
contents = sorted(os.path.basename(fn) for fn in contents)
wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
if not sys.dont_write_bytecode:
wanted.append('foo.%s.pyc' % imp.get_tag())
wanted.append('foo.%s.pyc' % sys.implementation.cache_tag)
self.assertEqual(contents, sorted(wanted))
def test_suite():

View File

@ -2,7 +2,6 @@
import os
import sys
import imp
import unittest
from distutils.command.build_py import build_py
@ -63,7 +62,8 @@ class BuildPyTestCase(support.TempdirManager,
self.assertFalse(os.path.exists(pycache_dir))
else:
pyc_files = os.listdir(pycache_dir)
self.assertIn("__init__.%s.pyc" % imp.get_tag(), pyc_files)
self.assertIn("__init__.%s.pyc" % sys.implementation.cache_tag,
pyc_files)
def test_empty_package_dir(self):
# See bugs #1668596/#1720897
@ -102,7 +102,8 @@ class BuildPyTestCase(support.TempdirManager,
found = os.listdir(cmd.build_lib)
self.assertEqual(sorted(found), ['__pycache__', 'boiledeggs.py'])
found = os.listdir(os.path.join(cmd.build_lib, '__pycache__'))
self.assertEqual(found, ['boiledeggs.%s.pyc' % imp.get_tag()])
self.assertEqual(found,
['boiledeggs.%s.pyc' % sys.implementation.cache_tag])
@unittest.skipIf(sys.dont_write_bytecode, 'byte-compile disabled')
def test_byte_compile_optimized(self):
@ -119,7 +120,8 @@ class BuildPyTestCase(support.TempdirManager,
found = os.listdir(cmd.build_lib)
self.assertEqual(sorted(found), ['__pycache__', 'boiledeggs.py'])
found = os.listdir(os.path.join(cmd.build_lib, '__pycache__'))
self.assertEqual(sorted(found), ['boiledeggs.%s.pyo' % imp.get_tag()])
self.assertEqual(sorted(found),
['boiledeggs.%s.pyo' % sys.implementation.cache_tag])
def test_dont_write_bytecode(self):
# makes sure byte_compile is not used

View File

@ -1,7 +1,6 @@
"""Tests for distutils.command.install."""
import os
import imp
import sys
import unittest
import site
@ -193,7 +192,8 @@ class InstallTestCase(support.TempdirManager,
f.close()
found = [os.path.basename(line) for line in content.splitlines()]
expected = ['hello.py', 'hello.%s.pyc' % imp.get_tag(), 'sayhi',
expected = ['hello.py', 'hello.%s.pyc' % sys.implementation.cache_tag,
'sayhi',
'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
self.assertEqual(found, expected)

View File

@ -1,7 +1,7 @@
"""Tests for distutils.command.install_data."""
import sys
import os
import imp
import importlib.util
import unittest
from distutils.command.install_lib import install_lib
@ -44,8 +44,10 @@ class InstallLibTestCase(support.TempdirManager,
f = os.path.join(project_dir, 'foo.py')
self.write_file(f, '# python file')
cmd.byte_compile([f])
pyc_file = imp.cache_from_source('foo.py', debug_override=True)
pyo_file = imp.cache_from_source('foo.py', debug_override=False)
pyc_file = importlib.util.cache_from_source('foo.py',
debug_override=True)
pyo_file = importlib.util.cache_from_source('foo.py',
debug_override=False)
self.assertTrue(os.path.exists(pyc_file))
self.assertTrue(os.path.exists(pyo_file))

View File

@ -6,7 +6,7 @@ one of the other *util.py modules.
import os
import re
import imp
import importlib.util
import sys
import string
from distutils.errors import DistutilsPlatformError
@ -453,9 +453,10 @@ byte_compile(files, optimize=%r, force=%r,
# cfile - byte-compiled file
# dfile - purported source filename (same as 'file' by default)
if optimize >= 0:
cfile = imp.cache_from_source(file, debug_override=not optimize)
cfile = importlib.util.cache_from_source(
file, debug_override=not optimize)
else:
cfile = imp.cache_from_source(file)
cfile = importlib.util.cache_from_source(file)
dfile = file
if prefix:
if file[:len(prefix)] != prefix: