mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
Issue #17177: Stop using imp in distutils
This commit is contained in:
parent
7822e123c4
commit
61c3556c14
7 changed files with 26 additions and 22 deletions
|
@ -3,7 +3,7 @@
|
||||||
Implements the Distutils 'build_py' command."""
|
Implements the Distutils 'build_py' command."""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import imp
|
import importlib.util
|
||||||
import sys
|
import sys
|
||||||
from glob import glob
|
from glob import glob
|
||||||
|
|
||||||
|
@ -312,11 +312,11 @@ class build_py (Command):
|
||||||
outputs.append(filename)
|
outputs.append(filename)
|
||||||
if include_bytecode:
|
if include_bytecode:
|
||||||
if self.compile:
|
if self.compile:
|
||||||
outputs.append(imp.cache_from_source(filename,
|
outputs.append(importlib.util.cache_from_source(
|
||||||
debug_override=True))
|
filename, debug_override=True))
|
||||||
if self.optimize > 0:
|
if self.optimize > 0:
|
||||||
outputs.append(imp.cache_from_source(filename,
|
outputs.append(importlib.util.cache_from_source(
|
||||||
debug_override=False))
|
filename, debug_override=False))
|
||||||
|
|
||||||
outputs += [
|
outputs += [
|
||||||
os.path.join(build_dir, filename)
|
os.path.join(build_dir, filename)
|
||||||
|
|
|
@ -4,7 +4,7 @@ Implements the Distutils 'install_lib' command
|
||||||
(install all Python modules)."""
|
(install all Python modules)."""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import imp
|
import importlib.util
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from distutils.core import Command
|
from distutils.core import Command
|
||||||
|
@ -165,10 +165,10 @@ class install_lib(Command):
|
||||||
if ext != PYTHON_SOURCE_EXTENSION:
|
if ext != PYTHON_SOURCE_EXTENSION:
|
||||||
continue
|
continue
|
||||||
if self.compile:
|
if self.compile:
|
||||||
bytecode_files.append(imp.cache_from_source(
|
bytecode_files.append(importlib.util.cache_from_source(
|
||||||
py_file, debug_override=True))
|
py_file, debug_override=True))
|
||||||
if self.optimize > 0:
|
if self.optimize > 0:
|
||||||
bytecode_files.append(imp.cache_from_source(
|
bytecode_files.append(importlib.util.cache_from_source(
|
||||||
py_file, debug_override=False))
|
py_file, debug_override=False))
|
||||||
|
|
||||||
return bytecode_files
|
return bytecode_files
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
"""Tests for distutils.command.bdist_dumb."""
|
"""Tests for distutils.command.bdist_dumb."""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import imp
|
|
||||||
import sys
|
import sys
|
||||||
import zipfile
|
import zipfile
|
||||||
import unittest
|
import unittest
|
||||||
|
@ -88,7 +87,7 @@ class BuildDumbTestCase(support.TempdirManager,
|
||||||
contents = sorted(os.path.basename(fn) for fn in contents)
|
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']
|
wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
|
||||||
if not sys.dont_write_bytecode:
|
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))
|
self.assertEqual(contents, sorted(wanted))
|
||||||
|
|
||||||
def test_suite():
|
def test_suite():
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import imp
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from distutils.command.build_py import build_py
|
from distutils.command.build_py import build_py
|
||||||
|
@ -63,7 +62,8 @@ class BuildPyTestCase(support.TempdirManager,
|
||||||
self.assertFalse(os.path.exists(pycache_dir))
|
self.assertFalse(os.path.exists(pycache_dir))
|
||||||
else:
|
else:
|
||||||
pyc_files = os.listdir(pycache_dir)
|
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):
|
def test_empty_package_dir(self):
|
||||||
# See bugs #1668596/#1720897
|
# See bugs #1668596/#1720897
|
||||||
|
@ -102,7 +102,8 @@ class BuildPyTestCase(support.TempdirManager,
|
||||||
found = os.listdir(cmd.build_lib)
|
found = os.listdir(cmd.build_lib)
|
||||||
self.assertEqual(sorted(found), ['__pycache__', 'boiledeggs.py'])
|
self.assertEqual(sorted(found), ['__pycache__', 'boiledeggs.py'])
|
||||||
found = os.listdir(os.path.join(cmd.build_lib, '__pycache__'))
|
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')
|
@unittest.skipIf(sys.dont_write_bytecode, 'byte-compile disabled')
|
||||||
def test_byte_compile_optimized(self):
|
def test_byte_compile_optimized(self):
|
||||||
|
@ -119,7 +120,8 @@ class BuildPyTestCase(support.TempdirManager,
|
||||||
found = os.listdir(cmd.build_lib)
|
found = os.listdir(cmd.build_lib)
|
||||||
self.assertEqual(sorted(found), ['__pycache__', 'boiledeggs.py'])
|
self.assertEqual(sorted(found), ['__pycache__', 'boiledeggs.py'])
|
||||||
found = os.listdir(os.path.join(cmd.build_lib, '__pycache__'))
|
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):
|
def test_dont_write_bytecode(self):
|
||||||
# makes sure byte_compile is not used
|
# makes sure byte_compile is not used
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
"""Tests for distutils.command.install."""
|
"""Tests for distutils.command.install."""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import imp
|
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
import site
|
import site
|
||||||
|
@ -193,7 +192,8 @@ class InstallTestCase(support.TempdirManager,
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
found = [os.path.basename(line) for line in content.splitlines()]
|
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]]
|
'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
|
||||||
self.assertEqual(found, expected)
|
self.assertEqual(found, expected)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""Tests for distutils.command.install_data."""
|
"""Tests for distutils.command.install_data."""
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import imp
|
import importlib.util
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from distutils.command.install_lib import install_lib
|
from distutils.command.install_lib import install_lib
|
||||||
|
@ -44,8 +44,10 @@ class InstallLibTestCase(support.TempdirManager,
|
||||||
f = os.path.join(project_dir, 'foo.py')
|
f = os.path.join(project_dir, 'foo.py')
|
||||||
self.write_file(f, '# python file')
|
self.write_file(f, '# python file')
|
||||||
cmd.byte_compile([f])
|
cmd.byte_compile([f])
|
||||||
pyc_file = imp.cache_from_source('foo.py', debug_override=True)
|
pyc_file = importlib.util.cache_from_source('foo.py',
|
||||||
pyo_file = imp.cache_from_source('foo.py', debug_override=False)
|
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(pyc_file))
|
||||||
self.assertTrue(os.path.exists(pyo_file))
|
self.assertTrue(os.path.exists(pyo_file))
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ one of the other *util.py modules.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import imp
|
import importlib.util
|
||||||
import sys
|
import sys
|
||||||
import string
|
import string
|
||||||
from distutils.errors import DistutilsPlatformError
|
from distutils.errors import DistutilsPlatformError
|
||||||
|
@ -453,9 +453,10 @@ byte_compile(files, optimize=%r, force=%r,
|
||||||
# cfile - byte-compiled file
|
# cfile - byte-compiled file
|
||||||
# dfile - purported source filename (same as 'file' by default)
|
# dfile - purported source filename (same as 'file' by default)
|
||||||
if optimize >= 0:
|
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:
|
else:
|
||||||
cfile = imp.cache_from_source(file)
|
cfile = importlib.util.cache_from_source(file)
|
||||||
dfile = file
|
dfile = file
|
||||||
if prefix:
|
if prefix:
|
||||||
if file[:len(prefix)] != prefix:
|
if file[:len(prefix)] != prefix:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue