mirror of https://github.com/python/cpython.git
Branch merge
This commit is contained in:
commit
cc95dd81f3
|
@ -3,6 +3,7 @@
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
import site
|
||||||
import logging
|
import logging
|
||||||
import sysconfig
|
import sysconfig
|
||||||
|
|
||||||
|
@ -15,9 +16,6 @@
|
||||||
from packaging.compiler.extension import Extension
|
from packaging.compiler.extension import Extension
|
||||||
from packaging import logger
|
from packaging import logger
|
||||||
|
|
||||||
import site
|
|
||||||
HAS_USER_SITE = True
|
|
||||||
|
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
from packaging.compiler.msvccompiler import get_build_version
|
from packaging.compiler.msvccompiler import get_build_version
|
||||||
MSVC_VERSION = int(get_build_version())
|
MSVC_VERSION = int(get_build_version())
|
||||||
|
@ -62,6 +60,8 @@ class build_ext(Command):
|
||||||
('inplace', 'i',
|
('inplace', 'i',
|
||||||
"ignore build-lib and put compiled extensions into the source " +
|
"ignore build-lib and put compiled extensions into the source " +
|
||||||
"directory alongside your pure Python modules"),
|
"directory alongside your pure Python modules"),
|
||||||
|
('user', None,
|
||||||
|
"add user include, library and rpath"),
|
||||||
('include-dirs=', 'I',
|
('include-dirs=', 'I',
|
||||||
"list of directories to search for header files" + sep_by),
|
"list of directories to search for header files" + sep_by),
|
||||||
('define=', 'D',
|
('define=', 'D',
|
||||||
|
@ -88,12 +88,8 @@ class build_ext(Command):
|
||||||
"path to the SWIG executable"),
|
"path to the SWIG executable"),
|
||||||
]
|
]
|
||||||
|
|
||||||
boolean_options = ['inplace', 'debug', 'force']
|
boolean_options = ['inplace', 'debug', 'force', 'user']
|
||||||
|
|
||||||
if HAS_USER_SITE:
|
|
||||||
user_options.append(('user', None,
|
|
||||||
"add user include, library and rpath"))
|
|
||||||
boolean_options.append('user')
|
|
||||||
|
|
||||||
help_options = [
|
help_options = [
|
||||||
('help-compiler', None,
|
('help-compiler', None,
|
||||||
|
@ -120,7 +116,6 @@ def initialize_options(self):
|
||||||
self.compiler = None
|
self.compiler = None
|
||||||
self.swig = None
|
self.swig = None
|
||||||
self.swig_opts = None
|
self.swig_opts = None
|
||||||
if HAS_USER_SITE:
|
|
||||||
self.user = None
|
self.user = None
|
||||||
|
|
||||||
def finalize_options(self):
|
def finalize_options(self):
|
||||||
|
@ -270,7 +265,7 @@ def finalize_options(self):
|
||||||
self.swig_opts = self.swig_opts.split(' ')
|
self.swig_opts = self.swig_opts.split(' ')
|
||||||
|
|
||||||
# Finally add the user include and library directories if requested
|
# Finally add the user include and library directories if requested
|
||||||
if HAS_USER_SITE and self.user:
|
if self.user:
|
||||||
user_include = os.path.join(site.USER_BASE, "include")
|
user_include = os.path.join(site.USER_BASE, "include")
|
||||||
user_lib = os.path.join(site.USER_BASE, "lib")
|
user_lib = os.path.join(site.USER_BASE, "lib")
|
||||||
if os.path.isdir(user_include):
|
if os.path.isdir(user_include):
|
||||||
|
|
|
@ -388,7 +388,7 @@ def build_packages(self):
|
||||||
self.build_module(module, module_file, package)
|
self.build_module(module, module_file, package)
|
||||||
|
|
||||||
def byte_compile(self, files):
|
def byte_compile(self, files):
|
||||||
if hasattr(sys, 'dont_write_bytecode') and sys.dont_write_bytecode:
|
if sys.dont_write_bytecode:
|
||||||
logger.warning('%s: byte-compiling is disabled, skipping.',
|
logger.warning('%s: byte-compiling is disabled, skipping.',
|
||||||
self.get_command_name())
|
self.get_command_name())
|
||||||
return
|
return
|
||||||
|
|
|
@ -14,9 +14,6 @@
|
||||||
from packaging.errors import PackagingOptionError
|
from packaging.errors import PackagingOptionError
|
||||||
|
|
||||||
|
|
||||||
HAS_USER_SITE = True
|
|
||||||
|
|
||||||
|
|
||||||
class install_dist(Command):
|
class install_dist(Command):
|
||||||
|
|
||||||
description = "install everything from build directory"
|
description = "install everything from build directory"
|
||||||
|
@ -27,6 +24,9 @@ class install_dist(Command):
|
||||||
"installation prefix"),
|
"installation prefix"),
|
||||||
('exec-prefix=', None,
|
('exec-prefix=', None,
|
||||||
"(Unix only) prefix for platform-specific files"),
|
"(Unix only) prefix for platform-specific files"),
|
||||||
|
('user', None,
|
||||||
|
"install in user site-packages directory [%s]" %
|
||||||
|
get_path('purelib', '%s_user' % os.name)),
|
||||||
('home=', None,
|
('home=', None,
|
||||||
"(Unix only) home directory to install under"),
|
"(Unix only) home directory to install under"),
|
||||||
|
|
||||||
|
@ -97,15 +97,7 @@ class install_dist(Command):
|
||||||
]
|
]
|
||||||
|
|
||||||
boolean_options = ['compile', 'force', 'skip-build', 'no-distinfo',
|
boolean_options = ['compile', 'force', 'skip-build', 'no-distinfo',
|
||||||
'requested', 'no-record']
|
'requested', 'no-record', 'user']
|
||||||
|
|
||||||
if HAS_USER_SITE:
|
|
||||||
user_options.append(
|
|
||||||
('user', None,
|
|
||||||
"install in user site-packages directory [%s]" %
|
|
||||||
get_path('purelib', '%s_user' % os.name)))
|
|
||||||
|
|
||||||
boolean_options.append('user')
|
|
||||||
|
|
||||||
negative_opt = {'no-compile': 'compile', 'no-requested': 'requested'}
|
negative_opt = {'no-compile': 'compile', 'no-requested': 'requested'}
|
||||||
|
|
||||||
|
@ -115,7 +107,6 @@ def initialize_options(self):
|
||||||
self.prefix = None
|
self.prefix = None
|
||||||
self.exec_prefix = None
|
self.exec_prefix = None
|
||||||
self.home = None
|
self.home = None
|
||||||
if HAS_USER_SITE:
|
|
||||||
self.user = False
|
self.user = False
|
||||||
|
|
||||||
# These select only the installation base; it's up to the user to
|
# These select only the installation base; it's up to the user to
|
||||||
|
@ -135,7 +126,6 @@ def initialize_options(self):
|
||||||
self.install_lib = None # set to either purelib or platlib
|
self.install_lib = None # set to either purelib or platlib
|
||||||
self.install_scripts = None
|
self.install_scripts = None
|
||||||
self.install_data = None
|
self.install_data = None
|
||||||
if HAS_USER_SITE:
|
|
||||||
self.install_userbase = get_config_var('userbase')
|
self.install_userbase = get_config_var('userbase')
|
||||||
self.install_usersite = get_path('purelib', '%s_user' % os.name)
|
self.install_usersite = get_path('purelib', '%s_user' % os.name)
|
||||||
|
|
||||||
|
@ -219,8 +209,7 @@ def finalize_options(self):
|
||||||
raise PackagingOptionError(
|
raise PackagingOptionError(
|
||||||
"must supply either home or prefix/exec-prefix -- not both")
|
"must supply either home or prefix/exec-prefix -- not both")
|
||||||
|
|
||||||
if HAS_USER_SITE and self.user and (
|
if self.user and (self.prefix or self.exec_prefix or self.home or
|
||||||
self.prefix or self.exec_prefix or self.home or
|
|
||||||
self.install_base or self.install_platbase):
|
self.install_base or self.install_platbase):
|
||||||
raise PackagingOptionError(
|
raise PackagingOptionError(
|
||||||
"can't combine user with prefix/exec_prefix/home or "
|
"can't combine user with prefix/exec_prefix/home or "
|
||||||
|
@ -274,12 +263,10 @@ def finalize_options(self):
|
||||||
'exec_prefix': exec_prefix,
|
'exec_prefix': exec_prefix,
|
||||||
'srcdir': srcdir,
|
'srcdir': srcdir,
|
||||||
'projectbase': projectbase,
|
'projectbase': projectbase,
|
||||||
|
'userbase': self.install_userbase,
|
||||||
|
'usersite': self.install_usersite,
|
||||||
}
|
}
|
||||||
|
|
||||||
if HAS_USER_SITE:
|
|
||||||
self.config_vars['userbase'] = self.install_userbase
|
|
||||||
self.config_vars['usersite'] = self.install_usersite
|
|
||||||
|
|
||||||
self.expand_basedirs()
|
self.expand_basedirs()
|
||||||
|
|
||||||
self.dump_dirs("post-expand_basedirs()")
|
self.dump_dirs("post-expand_basedirs()")
|
||||||
|
@ -295,9 +282,9 @@ def finalize_options(self):
|
||||||
|
|
||||||
self.dump_dirs("post-expand_dirs()")
|
self.dump_dirs("post-expand_dirs()")
|
||||||
|
|
||||||
# Create directories in the home dir:
|
# Create directories under USERBASE
|
||||||
if HAS_USER_SITE and self.user:
|
if self.user:
|
||||||
self.create_home_path()
|
self.create_user_dirs()
|
||||||
|
|
||||||
# Pick the actual directory to install all modules to: either
|
# Pick the actual directory to install all modules to: either
|
||||||
# install_purelib or install_platlib, depending on whether this
|
# install_purelib or install_platlib, depending on whether this
|
||||||
|
@ -311,10 +298,8 @@ def finalize_options(self):
|
||||||
|
|
||||||
# Convert directories from Unix /-separated syntax to the local
|
# Convert directories from Unix /-separated syntax to the local
|
||||||
# convention.
|
# convention.
|
||||||
self.convert_paths('lib', 'purelib', 'platlib',
|
self.convert_paths('lib', 'purelib', 'platlib', 'scripts',
|
||||||
'scripts', 'data', 'headers')
|
'data', 'headers', 'userbase', 'usersite')
|
||||||
if HAS_USER_SITE:
|
|
||||||
self.convert_paths('userbase', 'usersite')
|
|
||||||
|
|
||||||
# Well, we're not actually fully completely finalized yet: we still
|
# Well, we're not actually fully completely finalized yet: we still
|
||||||
# have to deal with 'extra_path', which is the hack for allowing
|
# have to deal with 'extra_path', which is the hack for allowing
|
||||||
|
@ -355,7 +340,7 @@ def finalize_unix(self):
|
||||||
"installation scheme is incomplete")
|
"installation scheme is incomplete")
|
||||||
return
|
return
|
||||||
|
|
||||||
if HAS_USER_SITE and self.user:
|
if self.user:
|
||||||
if self.install_userbase is None:
|
if self.install_userbase is None:
|
||||||
raise PackagingPlatformError(
|
raise PackagingPlatformError(
|
||||||
"user base directory is not specified")
|
"user base directory is not specified")
|
||||||
|
@ -383,7 +368,7 @@ def finalize_unix(self):
|
||||||
|
|
||||||
def finalize_other(self):
|
def finalize_other(self):
|
||||||
"""Finalize options for non-posix platforms"""
|
"""Finalize options for non-posix platforms"""
|
||||||
if HAS_USER_SITE and self.user:
|
if self.user:
|
||||||
if self.install_userbase is None:
|
if self.install_userbase is None:
|
||||||
raise PackagingPlatformError(
|
raise PackagingPlatformError(
|
||||||
"user base directory is not specified")
|
"user base directory is not specified")
|
||||||
|
@ -494,10 +479,8 @@ def change_roots(self, *names):
|
||||||
attr = "install_" + name
|
attr = "install_" + name
|
||||||
setattr(self, attr, change_root(self.root, getattr(self, attr)))
|
setattr(self, attr, change_root(self.root, getattr(self, attr)))
|
||||||
|
|
||||||
def create_home_path(self):
|
def create_user_dirs(self):
|
||||||
"""Create directories under ~."""
|
"""Create directories under USERBASE as needed."""
|
||||||
if HAS_USER_SITE and not self.user:
|
|
||||||
return
|
|
||||||
home = convert_path(os.path.expanduser("~"))
|
home = convert_path(os.path.expanduser("~"))
|
||||||
for name, path in self.config_vars.items():
|
for name, path in self.config_vars.items():
|
||||||
if path.startswith(home) and not os.path.isdir(path):
|
if path.startswith(home) and not os.path.isdir(path):
|
||||||
|
|
|
@ -2,15 +2,14 @@
|
||||||
|
|
||||||
# Forked from the former install_egg_info command by Josip Djolonga
|
# Forked from the former install_egg_info command by Josip Djolonga
|
||||||
|
|
||||||
import csv
|
|
||||||
import os
|
import os
|
||||||
import re
|
import csv
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
from packaging.command.cmd import Command
|
|
||||||
from packaging import logger
|
|
||||||
from shutil import rmtree
|
from shutil import rmtree
|
||||||
|
|
||||||
|
from packaging import logger
|
||||||
|
from packaging.command.cmd import Command
|
||||||
|
|
||||||
|
|
||||||
class install_distinfo(Command):
|
class install_distinfo(Command):
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ def install(self):
|
||||||
return outfiles
|
return outfiles
|
||||||
|
|
||||||
def byte_compile(self, files):
|
def byte_compile(self, files):
|
||||||
if getattr(sys, 'dont_write_bytecode'):
|
if sys.dont_write_bytecode:
|
||||||
# XXX do we want this? because a Python runs without bytecode
|
# XXX do we want this? because a Python runs without bytecode
|
||||||
# doesn't mean that the *dists should not contain bytecode
|
# doesn't mean that the *dists should not contain bytecode
|
||||||
#--or does it?
|
#--or does it?
|
||||||
|
|
|
@ -352,5 +352,4 @@ def preprocess(self, source, output_file=None, macros=None,
|
||||||
try:
|
try:
|
||||||
self.spawn(pp_args)
|
self.spawn(pp_args)
|
||||||
except PackagingExecError as msg:
|
except PackagingExecError as msg:
|
||||||
print(msg)
|
|
||||||
raise CompileError(msg)
|
raise CompileError(msg)
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
from shutil import move
|
from shutil import move
|
||||||
from packaging import logger
|
from packaging import logger
|
||||||
from packaging.util import split_quoted, execute, newer_group, spawn
|
from packaging.util import split_quoted, execute, newer_group, spawn
|
||||||
|
|
|
@ -537,7 +537,7 @@ def print_command_list(self, commands, header, max_length):
|
||||||
def _get_command_groups(self):
|
def _get_command_groups(self):
|
||||||
"""Helper function to retrieve all the command class names divided
|
"""Helper function to retrieve all the command class names divided
|
||||||
into standard commands (listed in
|
into standard commands (listed in
|
||||||
packaging2.command.STANDARD_COMMANDS) and extra commands (given in
|
packaging.command.STANDARD_COMMANDS) and extra commands (given in
|
||||||
self.cmdclass and not standard commands).
|
self.cmdclass and not standard commands).
|
||||||
"""
|
"""
|
||||||
extra_commands = [cmd for cmd in self.cmdclass
|
extra_commands = [cmd for cmd in self.cmdclass
|
||||||
|
@ -547,7 +547,7 @@ def _get_command_groups(self):
|
||||||
def print_commands(self):
|
def print_commands(self):
|
||||||
"""Print out a help message listing all available commands with a
|
"""Print out a help message listing all available commands with a
|
||||||
description of each. The list is divided into standard commands
|
description of each. The list is divided into standard commands
|
||||||
(listed in packaging2.command.STANDARD_COMMANDS) and extra commands
|
(listed in packaging.command.STANDARD_COMMANDS) and extra commands
|
||||||
(given in self.cmdclass and not standard commands). The
|
(given in self.cmdclass and not standard commands). The
|
||||||
descriptions come from the command class attribute
|
descriptions come from the command class attribute
|
||||||
'description'.
|
'description'.
|
||||||
|
|
|
@ -19,18 +19,13 @@ class BuildExtTestCase(support.TempdirManager,
|
||||||
support.LoggingCatcher,
|
support.LoggingCatcher,
|
||||||
unittest.TestCase):
|
unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# Create a simple test environment
|
|
||||||
# Note that we're making changes to sys.path
|
|
||||||
super(BuildExtTestCase, self).setUp()
|
super(BuildExtTestCase, self).setUp()
|
||||||
self.tmp_dir = self.mkdtemp()
|
self.tmp_dir = self.mkdtemp()
|
||||||
self.old_user_base = site.USER_BASE
|
self.old_user_base = site.USER_BASE
|
||||||
site.USER_BASE = self.mkdtemp()
|
site.USER_BASE = self.mkdtemp()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
# Get everything back to normal
|
|
||||||
if sys.version > "2.6":
|
|
||||||
site.USER_BASE = self.old_user_base
|
site.USER_BASE = self.old_user_base
|
||||||
|
|
||||||
super(BuildExtTestCase, self).tearDown()
|
super(BuildExtTestCase, self).tearDown()
|
||||||
|
|
||||||
def test_build_ext(self):
|
def test_build_ext(self):
|
||||||
|
@ -94,7 +89,6 @@ def test_solaris_enable_shared(self):
|
||||||
# make sure we get some library dirs under solaris
|
# make sure we get some library dirs under solaris
|
||||||
self.assertGreater(len(cmd.library_dirs), 0)
|
self.assertGreater(len(cmd.library_dirs), 0)
|
||||||
|
|
||||||
@unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
|
|
||||||
def test_user_site(self):
|
def test_user_site(self):
|
||||||
dist = Distribution({'name': 'xx'})
|
dist = Distribution({'name': 'xx'})
|
||||||
cmd = build_ext(dist)
|
cmd = build_ext(dist)
|
||||||
|
|
|
@ -99,8 +99,6 @@ def test_empty_package_dir(self):
|
||||||
os.chdir(cwd)
|
os.chdir(cwd)
|
||||||
sys.stdout = old_stdout
|
sys.stdout = old_stdout
|
||||||
|
|
||||||
@unittest.skipUnless(hasattr(sys, 'dont_write_bytecode'),
|
|
||||||
'sys.dont_write_bytecode not supported')
|
|
||||||
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
|
||||||
pkg_dir, dist = self.create_dist()
|
pkg_dir, dist = self.create_dist()
|
||||||
|
|
|
@ -72,7 +72,6 @@ def check_path(got, expected):
|
||||||
check_path(cmd.install_scripts, os.path.join(destination, "bin"))
|
check_path(cmd.install_scripts, os.path.join(destination, "bin"))
|
||||||
check_path(cmd.install_data, destination)
|
check_path(cmd.install_data, destination)
|
||||||
|
|
||||||
@unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
|
|
||||||
def test_user_site(self):
|
def test_user_site(self):
|
||||||
# test install with --user
|
# test install with --user
|
||||||
# preparing the environment for the test
|
# preparing the environment for the test
|
||||||
|
@ -173,7 +172,6 @@ def test_finalize_options(self):
|
||||||
cmd.home = 'home'
|
cmd.home = 'home'
|
||||||
self.assertRaises(PackagingOptionError, cmd.finalize_options)
|
self.assertRaises(PackagingOptionError, cmd.finalize_options)
|
||||||
|
|
||||||
if sys.version >= '2.6':
|
|
||||||
# can't combine user with with prefix/exec_prefix/home or
|
# can't combine user with with prefix/exec_prefix/home or
|
||||||
# install_(plat)base
|
# install_(plat)base
|
||||||
cmd.prefix = None
|
cmd.prefix = None
|
||||||
|
|
|
@ -7,13 +7,6 @@
|
||||||
from packaging.compiler.extension import Extension
|
from packaging.compiler.extension import Extension
|
||||||
from packaging.errors import PackagingOptionError
|
from packaging.errors import PackagingOptionError
|
||||||
|
|
||||||
try:
|
|
||||||
no_bytecode = sys.dont_write_bytecode
|
|
||||||
bytecode_support = True
|
|
||||||
except AttributeError:
|
|
||||||
no_bytecode = False
|
|
||||||
bytecode_support = False
|
|
||||||
|
|
||||||
|
|
||||||
class InstallLibTestCase(support.TempdirManager,
|
class InstallLibTestCase(support.TempdirManager,
|
||||||
support.LoggingCatcher,
|
support.LoggingCatcher,
|
||||||
|
@ -40,7 +33,7 @@ def test_finalize_options(self):
|
||||||
cmd.finalize_options()
|
cmd.finalize_options()
|
||||||
self.assertEqual(cmd.optimize, 2)
|
self.assertEqual(cmd.optimize, 2)
|
||||||
|
|
||||||
@unittest.skipIf(no_bytecode, 'byte-compile disabled')
|
@unittest.skipIf(sys.dont_write_bytecode, 'byte-compile disabled')
|
||||||
def test_byte_compile(self):
|
def test_byte_compile(self):
|
||||||
pkg_dir, dist = self.create_dist()
|
pkg_dir, dist = self.create_dist()
|
||||||
cmd = install_lib(dist)
|
cmd = install_lib(dist)
|
||||||
|
@ -89,8 +82,6 @@ def test_get_inputs(self):
|
||||||
# get_input should return 2 elements
|
# get_input should return 2 elements
|
||||||
self.assertEqual(len(cmd.get_inputs()), 2)
|
self.assertEqual(len(cmd.get_inputs()), 2)
|
||||||
|
|
||||||
@unittest.skipUnless(bytecode_support,
|
|
||||||
'sys.dont_write_bytecode not supported')
|
|
||||||
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
|
||||||
pkg_dir, dist = self.create_dist()
|
pkg_dir, dist = self.create_dist()
|
||||||
|
|
|
@ -9,7 +9,6 @@ class Mixin2to3TestCase(support.TempdirManager,
|
||||||
support.LoggingCatcher,
|
support.LoggingCatcher,
|
||||||
unittest.TestCase):
|
unittest.TestCase):
|
||||||
|
|
||||||
@unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
|
|
||||||
def test_convert_code_only(self):
|
def test_convert_code_only(self):
|
||||||
# used to check if code gets converted properly.
|
# used to check if code gets converted properly.
|
||||||
code = "print 'test'"
|
code = "print 'test'"
|
||||||
|
@ -26,7 +25,6 @@ def test_convert_code_only(self):
|
||||||
|
|
||||||
self.assertEqual(expected, converted)
|
self.assertEqual(expected, converted)
|
||||||
|
|
||||||
@unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
|
|
||||||
def test_doctests_only(self):
|
def test_doctests_only(self):
|
||||||
# used to check if doctests gets converted properly.
|
# used to check if doctests gets converted properly.
|
||||||
doctest = textwrap.dedent('''\
|
doctest = textwrap.dedent('''\
|
||||||
|
@ -57,7 +55,6 @@ def test_doctests_only(self):
|
||||||
|
|
||||||
self.assertEqual(expected, converted)
|
self.assertEqual(expected, converted)
|
||||||
|
|
||||||
@unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
|
|
||||||
def test_additional_fixers(self):
|
def test_additional_fixers(self):
|
||||||
# used to check if use_2to3_fixers works
|
# used to check if use_2to3_fixers works
|
||||||
code = 'type(x) is not T'
|
code = 'type(x) is not T'
|
||||||
|
|
|
@ -319,8 +319,6 @@ def test_get_compiler_versions(self):
|
||||||
res = get_compiler_versions()
|
res = get_compiler_versions()
|
||||||
self.assertEqual(res[2], None)
|
self.assertEqual(res[2], None)
|
||||||
|
|
||||||
@unittest.skipUnless(hasattr(sys, 'dont_write_bytecode'),
|
|
||||||
'sys.dont_write_bytecode not supported')
|
|
||||||
def test_dont_write_bytecode(self):
|
def test_dont_write_bytecode(self):
|
||||||
# makes sure byte_compile raise a PackagingError
|
# makes sure byte_compile raise a PackagingError
|
||||||
# if sys.dont_write_bytecode is True
|
# if sys.dont_write_bytecode is True
|
||||||
|
@ -407,7 +405,6 @@ def test_import_nested_first_time(self):
|
||||||
finally:
|
finally:
|
||||||
sys.path.remove(tmp_dir)
|
sys.path.remove(tmp_dir)
|
||||||
|
|
||||||
@unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
|
|
||||||
def test_run_2to3_on_code(self):
|
def test_run_2to3_on_code(self):
|
||||||
content = "print 'test'"
|
content = "print 'test'"
|
||||||
converted_content = "print('test')"
|
converted_content = "print('test')"
|
||||||
|
@ -421,7 +418,6 @@ def test_run_2to3_on_code(self):
|
||||||
file_handle.close()
|
file_handle.close()
|
||||||
self.assertEqual(new_content, converted_content)
|
self.assertEqual(new_content, converted_content)
|
||||||
|
|
||||||
@unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
|
|
||||||
def test_run_2to3_on_doctests(self):
|
def test_run_2to3_on_doctests(self):
|
||||||
# to check if text files containing doctests only get converted.
|
# to check if text files containing doctests only get converted.
|
||||||
content = ">>> print 'test'\ntest\n"
|
content = ">>> print 'test'\ntest\n"
|
||||||
|
|
|
@ -326,7 +326,7 @@ def byte_compile(py_files, optimize=0, force=False, prefix=None,
|
||||||
"""
|
"""
|
||||||
# nothing is done if sys.dont_write_bytecode is True
|
# nothing is done if sys.dont_write_bytecode is True
|
||||||
# FIXME this should not raise an error
|
# FIXME this should not raise an error
|
||||||
if hasattr(sys, 'dont_write_bytecode') and sys.dont_write_bytecode:
|
if sys.dont_write_bytecode:
|
||||||
raise PackagingByteCompileError('byte-compiling is disabled.')
|
raise PackagingByteCompileError('byte-compiling is disabled.')
|
||||||
|
|
||||||
# First, if the caller didn't force us into direct or indirect mode,
|
# First, if the caller didn't force us into direct or indirect mode,
|
||||||
|
@ -346,8 +346,10 @@ def byte_compile(py_files, optimize=0, force=False, prefix=None,
|
||||||
# run it with the appropriate flags.
|
# run it with the appropriate flags.
|
||||||
if not direct:
|
if not direct:
|
||||||
from tempfile import mkstemp
|
from tempfile import mkstemp
|
||||||
# XXX script_fd may leak, use something better than mkstemp
|
# XXX use something better than mkstemp
|
||||||
script_fd, script_name = mkstemp(".py")
|
script_fd, script_name = mkstemp(".py")
|
||||||
|
os.close(script_fd)
|
||||||
|
script_fd = None
|
||||||
logger.info("writing byte-compilation script '%s'", script_name)
|
logger.info("writing byte-compilation script '%s'", script_name)
|
||||||
if not dry_run:
|
if not dry_run:
|
||||||
if script_fd is not None:
|
if script_fd is not None:
|
||||||
|
|
|
@ -307,9 +307,9 @@ def _get_delegate(self):
|
||||||
def get_filename(self, fullname=None):
|
def get_filename(self, fullname=None):
|
||||||
fullname = self._fix_name(fullname)
|
fullname = self._fix_name(fullname)
|
||||||
mod_type = self.etc[2]
|
mod_type = self.etc[2]
|
||||||
if self.etc[2]==imp.PKG_DIRECTORY:
|
if mod_type==imp.PKG_DIRECTORY:
|
||||||
return self._get_delegate().get_filename()
|
return self._get_delegate().get_filename()
|
||||||
elif self.etc[2] in (imp.PY_SOURCE, imp.PY_COMPILED, imp.C_EXTENSION):
|
elif mod_type in (imp.PY_SOURCE, imp.PY_COMPILED, imp.C_EXTENSION):
|
||||||
return self.filename
|
return self.filename
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue