mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Branch merge
This commit is contained in:
		
						commit
						cc95dd81f3
					
				
					 16 changed files with 48 additions and 97 deletions
				
			
		| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
import os
 | 
			
		||||
import re
 | 
			
		||||
import sys
 | 
			
		||||
import site
 | 
			
		||||
import logging
 | 
			
		||||
import sysconfig
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -15,9 +16,6 @@
 | 
			
		|||
from packaging.compiler.extension import Extension
 | 
			
		||||
from packaging import logger
 | 
			
		||||
 | 
			
		||||
import site
 | 
			
		||||
HAS_USER_SITE = True
 | 
			
		||||
 | 
			
		||||
if os.name == 'nt':
 | 
			
		||||
    from packaging.compiler.msvccompiler import get_build_version
 | 
			
		||||
    MSVC_VERSION = int(get_build_version())
 | 
			
		||||
| 
						 | 
				
			
			@ -62,6 +60,8 @@ class build_ext(Command):
 | 
			
		|||
        ('inplace', 'i',
 | 
			
		||||
         "ignore build-lib and put compiled extensions into the source " +
 | 
			
		||||
         "directory alongside your pure Python modules"),
 | 
			
		||||
        ('user', None,
 | 
			
		||||
         "add user include, library and rpath"),
 | 
			
		||||
        ('include-dirs=', 'I',
 | 
			
		||||
         "list of directories to search for header files" + sep_by),
 | 
			
		||||
        ('define=', 'D',
 | 
			
		||||
| 
						 | 
				
			
			@ -88,12 +88,8 @@ class build_ext(Command):
 | 
			
		|||
         "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-compiler', None,
 | 
			
		||||
| 
						 | 
				
			
			@ -120,8 +116,7 @@ def initialize_options(self):
 | 
			
		|||
        self.compiler = None
 | 
			
		||||
        self.swig = None
 | 
			
		||||
        self.swig_opts = None
 | 
			
		||||
        if HAS_USER_SITE:
 | 
			
		||||
            self.user = None
 | 
			
		||||
        self.user = None
 | 
			
		||||
 | 
			
		||||
    def finalize_options(self):
 | 
			
		||||
        self.set_undefined_options('build',
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +265,7 @@ def finalize_options(self):
 | 
			
		|||
            self.swig_opts = self.swig_opts.split(' ')
 | 
			
		||||
 | 
			
		||||
        # 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_lib = os.path.join(site.USER_BASE, "lib")
 | 
			
		||||
            if os.path.isdir(user_include):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -388,7 +388,7 @@ def build_packages(self):
 | 
			
		|||
                self.build_module(module, module_file, package)
 | 
			
		||||
 | 
			
		||||
    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.',
 | 
			
		||||
                           self.get_command_name())
 | 
			
		||||
            return
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,9 +14,6 @@
 | 
			
		|||
from packaging.errors import PackagingOptionError
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
HAS_USER_SITE = True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class install_dist(Command):
 | 
			
		||||
 | 
			
		||||
    description = "install everything from build directory"
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +24,9 @@ class install_dist(Command):
 | 
			
		|||
         "installation prefix"),
 | 
			
		||||
        ('exec-prefix=', None,
 | 
			
		||||
         "(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,
 | 
			
		||||
         "(Unix only) home directory to install under"),
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -97,15 +97,7 @@ class install_dist(Command):
 | 
			
		|||
        ]
 | 
			
		||||
 | 
			
		||||
    boolean_options = ['compile', 'force', 'skip-build', 'no-distinfo',
 | 
			
		||||
                       'requested', 'no-record']
 | 
			
		||||
 | 
			
		||||
    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')
 | 
			
		||||
                       'requested', 'no-record', 'user']
 | 
			
		||||
 | 
			
		||||
    negative_opt = {'no-compile': 'compile', 'no-requested': 'requested'}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -115,8 +107,7 @@ def initialize_options(self):
 | 
			
		|||
        self.prefix = None
 | 
			
		||||
        self.exec_prefix = 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
 | 
			
		||||
        # specify the installation scheme (currently, that means supplying
 | 
			
		||||
| 
						 | 
				
			
			@ -135,9 +126,8 @@ def initialize_options(self):
 | 
			
		|||
        self.install_lib = None         # set to either purelib or platlib
 | 
			
		||||
        self.install_scripts = None
 | 
			
		||||
        self.install_data = None
 | 
			
		||||
        if HAS_USER_SITE:
 | 
			
		||||
            self.install_userbase = get_config_var('userbase')
 | 
			
		||||
            self.install_usersite = get_path('purelib', '%s_user' % os.name)
 | 
			
		||||
        self.install_userbase = get_config_var('userbase')
 | 
			
		||||
        self.install_usersite = get_path('purelib', '%s_user' % os.name)
 | 
			
		||||
 | 
			
		||||
        self.compile = None
 | 
			
		||||
        self.optimize = None
 | 
			
		||||
| 
						 | 
				
			
			@ -219,9 +209,8 @@ def finalize_options(self):
 | 
			
		|||
            raise PackagingOptionError(
 | 
			
		||||
                "must supply either home or prefix/exec-prefix -- not both")
 | 
			
		||||
 | 
			
		||||
        if HAS_USER_SITE and self.user and (
 | 
			
		||||
                self.prefix or self.exec_prefix or self.home or
 | 
			
		||||
                self.install_base or self.install_platbase):
 | 
			
		||||
        if self.user and (self.prefix or self.exec_prefix or self.home or
 | 
			
		||||
                          self.install_base or self.install_platbase):
 | 
			
		||||
            raise PackagingOptionError(
 | 
			
		||||
                "can't combine user with prefix/exec_prefix/home or "
 | 
			
		||||
                "install_base/install_platbase")
 | 
			
		||||
| 
						 | 
				
			
			@ -274,11 +263,9 @@ def finalize_options(self):
 | 
			
		|||
            'exec_prefix': exec_prefix,
 | 
			
		||||
            'srcdir': srcdir,
 | 
			
		||||
            'projectbase': projectbase,
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        if HAS_USER_SITE:
 | 
			
		||||
            self.config_vars['userbase'] = self.install_userbase
 | 
			
		||||
            self.config_vars['usersite'] = self.install_usersite
 | 
			
		||||
            'userbase': self.install_userbase,
 | 
			
		||||
            'usersite': self.install_usersite,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        self.expand_basedirs()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -295,9 +282,9 @@ def finalize_options(self):
 | 
			
		|||
 | 
			
		||||
        self.dump_dirs("post-expand_dirs()")
 | 
			
		||||
 | 
			
		||||
        # Create directories in the home dir:
 | 
			
		||||
        if HAS_USER_SITE and self.user:
 | 
			
		||||
            self.create_home_path()
 | 
			
		||||
        # Create directories under USERBASE
 | 
			
		||||
        if self.user:
 | 
			
		||||
            self.create_user_dirs()
 | 
			
		||||
 | 
			
		||||
        # Pick the actual directory to install all modules to: either
 | 
			
		||||
        # 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
 | 
			
		||||
        # convention.
 | 
			
		||||
        self.convert_paths('lib', 'purelib', 'platlib',
 | 
			
		||||
                           'scripts', 'data', 'headers')
 | 
			
		||||
        if HAS_USER_SITE:
 | 
			
		||||
            self.convert_paths('userbase', 'usersite')
 | 
			
		||||
        self.convert_paths('lib', 'purelib', 'platlib', 'scripts',
 | 
			
		||||
                           'data', 'headers', 'userbase', 'usersite')
 | 
			
		||||
 | 
			
		||||
        # Well, we're not actually fully completely finalized yet: we still
 | 
			
		||||
        # have to deal with 'extra_path', which is the hack for allowing
 | 
			
		||||
| 
						 | 
				
			
			@ -355,7 +340,7 @@ def finalize_unix(self):
 | 
			
		|||
                    "installation scheme is incomplete")
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        if HAS_USER_SITE and self.user:
 | 
			
		||||
        if self.user:
 | 
			
		||||
            if self.install_userbase is None:
 | 
			
		||||
                raise PackagingPlatformError(
 | 
			
		||||
                    "user base directory is not specified")
 | 
			
		||||
| 
						 | 
				
			
			@ -383,7 +368,7 @@ def finalize_unix(self):
 | 
			
		|||
 | 
			
		||||
    def finalize_other(self):
 | 
			
		||||
        """Finalize options for non-posix platforms"""
 | 
			
		||||
        if HAS_USER_SITE and self.user:
 | 
			
		||||
        if self.user:
 | 
			
		||||
            if self.install_userbase is None:
 | 
			
		||||
                raise PackagingPlatformError(
 | 
			
		||||
                    "user base directory is not specified")
 | 
			
		||||
| 
						 | 
				
			
			@ -494,10 +479,8 @@ def change_roots(self, *names):
 | 
			
		|||
            attr = "install_" + name
 | 
			
		||||
            setattr(self, attr, change_root(self.root, getattr(self, attr)))
 | 
			
		||||
 | 
			
		||||
    def create_home_path(self):
 | 
			
		||||
        """Create directories under ~."""
 | 
			
		||||
        if HAS_USER_SITE and not self.user:
 | 
			
		||||
            return
 | 
			
		||||
    def create_user_dirs(self):
 | 
			
		||||
        """Create directories under USERBASE as needed."""
 | 
			
		||||
        home = convert_path(os.path.expanduser("~"))
 | 
			
		||||
        for name, path in self.config_vars.items():
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
import csv
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import csv
 | 
			
		||||
import hashlib
 | 
			
		||||
 | 
			
		||||
from packaging.command.cmd import Command
 | 
			
		||||
from packaging import logger
 | 
			
		||||
from shutil import rmtree
 | 
			
		||||
 | 
			
		||||
from packaging import logger
 | 
			
		||||
from packaging.command.cmd import Command
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class install_distinfo(Command):
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ def install(self):
 | 
			
		|||
        return outfiles
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
            # doesn't mean that the *dists should not contain bytecode
 | 
			
		||||
            #--or does it?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -352,5 +352,4 @@ def preprocess(self, source, output_file=None, macros=None,
 | 
			
		|||
            try:
 | 
			
		||||
                self.spawn(pp_args)
 | 
			
		||||
            except PackagingExecError as msg:
 | 
			
		||||
                print(msg)
 | 
			
		||||
                raise CompileError(msg)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,6 @@
 | 
			
		|||
"""
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
from shutil import move
 | 
			
		||||
from packaging import logger
 | 
			
		||||
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):
 | 
			
		||||
        """Helper function to retrieve all the command class names divided
 | 
			
		||||
        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).
 | 
			
		||||
        """
 | 
			
		||||
        extra_commands = [cmd for cmd in self.cmdclass
 | 
			
		||||
| 
						 | 
				
			
			@ -547,7 +547,7 @@ def _get_command_groups(self):
 | 
			
		|||
    def print_commands(self):
 | 
			
		||||
        """Print out a help message listing all available commands with a
 | 
			
		||||
        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
 | 
			
		||||
        descriptions come from the command class attribute
 | 
			
		||||
        'description'.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,18 +19,13 @@ class BuildExtTestCase(support.TempdirManager,
 | 
			
		|||
                       support.LoggingCatcher,
 | 
			
		||||
                       unittest.TestCase):
 | 
			
		||||
    def setUp(self):
 | 
			
		||||
        # Create a simple test environment
 | 
			
		||||
        # Note that we're making changes to sys.path
 | 
			
		||||
        super(BuildExtTestCase, self).setUp()
 | 
			
		||||
        self.tmp_dir = self.mkdtemp()
 | 
			
		||||
        self.old_user_base = site.USER_BASE
 | 
			
		||||
        site.USER_BASE = self.mkdtemp()
 | 
			
		||||
 | 
			
		||||
    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()
 | 
			
		||||
 | 
			
		||||
    def test_build_ext(self):
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +89,6 @@ def test_solaris_enable_shared(self):
 | 
			
		|||
        # make sure we get some library dirs under solaris
 | 
			
		||||
        self.assertGreater(len(cmd.library_dirs), 0)
 | 
			
		||||
 | 
			
		||||
    @unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
 | 
			
		||||
    def test_user_site(self):
 | 
			
		||||
        dist = Distribution({'name': 'xx'})
 | 
			
		||||
        cmd = build_ext(dist)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,8 +99,6 @@ def test_empty_package_dir(self):
 | 
			
		|||
            os.chdir(cwd)
 | 
			
		||||
            sys.stdout = old_stdout
 | 
			
		||||
 | 
			
		||||
    @unittest.skipUnless(hasattr(sys, 'dont_write_bytecode'),
 | 
			
		||||
                         'sys.dont_write_bytecode not supported')
 | 
			
		||||
    def test_dont_write_bytecode(self):
 | 
			
		||||
        # makes sure byte_compile is not used
 | 
			
		||||
        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_data, destination)
 | 
			
		||||
 | 
			
		||||
    @unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
 | 
			
		||||
    def test_user_site(self):
 | 
			
		||||
        # test install with --user
 | 
			
		||||
        # preparing the environment for the test
 | 
			
		||||
| 
						 | 
				
			
			@ -173,12 +172,11 @@ def test_finalize_options(self):
 | 
			
		|||
        cmd.home = 'home'
 | 
			
		||||
        self.assertRaises(PackagingOptionError, cmd.finalize_options)
 | 
			
		||||
 | 
			
		||||
        if sys.version >= '2.6':
 | 
			
		||||
            # can't combine user with with prefix/exec_prefix/home or
 | 
			
		||||
            # install_(plat)base
 | 
			
		||||
            cmd.prefix = None
 | 
			
		||||
            cmd.user = 'user'
 | 
			
		||||
            self.assertRaises(PackagingOptionError, cmd.finalize_options)
 | 
			
		||||
        # can't combine user with with prefix/exec_prefix/home or
 | 
			
		||||
        # install_(plat)base
 | 
			
		||||
        cmd.prefix = None
 | 
			
		||||
        cmd.user = 'user'
 | 
			
		||||
        self.assertRaises(PackagingOptionError, cmd.finalize_options)
 | 
			
		||||
 | 
			
		||||
    def test_old_record(self):
 | 
			
		||||
        # test pre-PEP 376 --record option (outside dist-info dir)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,13 +7,6 @@
 | 
			
		|||
from packaging.compiler.extension import Extension
 | 
			
		||||
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,
 | 
			
		||||
                         support.LoggingCatcher,
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +33,7 @@ def test_finalize_options(self):
 | 
			
		|||
        cmd.finalize_options()
 | 
			
		||||
        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):
 | 
			
		||||
        pkg_dir, dist = self.create_dist()
 | 
			
		||||
        cmd = install_lib(dist)
 | 
			
		||||
| 
						 | 
				
			
			@ -89,8 +82,6 @@ def test_get_inputs(self):
 | 
			
		|||
        # get_input should return 2 elements
 | 
			
		||||
        self.assertEqual(len(cmd.get_inputs()), 2)
 | 
			
		||||
 | 
			
		||||
    @unittest.skipUnless(bytecode_support,
 | 
			
		||||
                         'sys.dont_write_bytecode not supported')
 | 
			
		||||
    def test_dont_write_bytecode(self):
 | 
			
		||||
        # makes sure byte_compile is not used
 | 
			
		||||
        pkg_dir, dist = self.create_dist()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,6 @@ class Mixin2to3TestCase(support.TempdirManager,
 | 
			
		|||
                        support.LoggingCatcher,
 | 
			
		||||
                        unittest.TestCase):
 | 
			
		||||
 | 
			
		||||
    @unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
 | 
			
		||||
    def test_convert_code_only(self):
 | 
			
		||||
        # used to check if code gets converted properly.
 | 
			
		||||
        code = "print 'test'"
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +25,6 @@ def test_convert_code_only(self):
 | 
			
		|||
 | 
			
		||||
        self.assertEqual(expected, converted)
 | 
			
		||||
 | 
			
		||||
    @unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
 | 
			
		||||
    def test_doctests_only(self):
 | 
			
		||||
        # used to check if doctests gets converted properly.
 | 
			
		||||
        doctest = textwrap.dedent('''\
 | 
			
		||||
| 
						 | 
				
			
			@ -57,7 +55,6 @@ def test_doctests_only(self):
 | 
			
		|||
 | 
			
		||||
        self.assertEqual(expected, converted)
 | 
			
		||||
 | 
			
		||||
    @unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
 | 
			
		||||
    def test_additional_fixers(self):
 | 
			
		||||
        # used to check if use_2to3_fixers works
 | 
			
		||||
        code = 'type(x) is not T'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -319,8 +319,6 @@ def test_get_compiler_versions(self):
 | 
			
		|||
        res = get_compiler_versions()
 | 
			
		||||
        self.assertEqual(res[2], None)
 | 
			
		||||
 | 
			
		||||
    @unittest.skipUnless(hasattr(sys, 'dont_write_bytecode'),
 | 
			
		||||
                         'sys.dont_write_bytecode not supported')
 | 
			
		||||
    def test_dont_write_bytecode(self):
 | 
			
		||||
        # makes sure byte_compile raise a PackagingError
 | 
			
		||||
        # if sys.dont_write_bytecode is True
 | 
			
		||||
| 
						 | 
				
			
			@ -407,7 +405,6 @@ def test_import_nested_first_time(self):
 | 
			
		|||
        finally:
 | 
			
		||||
            sys.path.remove(tmp_dir)
 | 
			
		||||
 | 
			
		||||
    @unittest.skipIf(sys.version < '2.6', 'requires Python 2.6 or higher')
 | 
			
		||||
    def test_run_2to3_on_code(self):
 | 
			
		||||
        content = "print 'test'"
 | 
			
		||||
        converted_content = "print('test')"
 | 
			
		||||
| 
						 | 
				
			
			@ -421,7 +418,6 @@ def test_run_2to3_on_code(self):
 | 
			
		|||
        file_handle.close()
 | 
			
		||||
        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):
 | 
			
		||||
        # to check if text files containing doctests only get converted.
 | 
			
		||||
        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
 | 
			
		||||
    # 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.')
 | 
			
		||||
 | 
			
		||||
    # 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.
 | 
			
		||||
    if not direct:
 | 
			
		||||
        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")
 | 
			
		||||
        os.close(script_fd)
 | 
			
		||||
        script_fd = None
 | 
			
		||||
        logger.info("writing byte-compilation script '%s'", script_name)
 | 
			
		||||
        if not dry_run:
 | 
			
		||||
            if script_fd is not None:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -307,9 +307,9 @@ def _get_delegate(self):
 | 
			
		|||
    def get_filename(self, fullname=None):
 | 
			
		||||
        fullname = self._fix_name(fullname)
 | 
			
		||||
        mod_type = self.etc[2]
 | 
			
		||||
        if self.etc[2]==imp.PKG_DIRECTORY:
 | 
			
		||||
        if mod_type==imp.PKG_DIRECTORY:
 | 
			
		||||
            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 None
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue