mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Packaging cleanup: remove conditionals for < 2.6 support.
PEP 370 features and sys.dont_write_bytecode are always available in 3.3; the distutils2 backport still has the conditionals. I also renamed an internal misnamed method and fixed a few things (“packaging2” name, stray print, unused import, fd leak).
This commit is contained in:
		
							parent
							
								
									37ccd6f794
								
							
						
					
					
						commit
						7724a6c10c
					
				
					 16 changed files with 47 additions and 96 deletions
				
			
		|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -127,7 +127,7 @@ class UnixCCompiler(CCompiler): | ||||||
|         executables['ranlib'] = ["ranlib"] |         executables['ranlib'] = ["ranlib"] | ||||||
| 
 | 
 | ||||||
|     # Needed for the filename generation methods provided by the base |     # Needed for the filename generation methods provided by the base | ||||||
|     # class, CCompiler.  NB. whoever instantiates/uses a particular |     # class, CCompiler.  XXX whoever instantiates/uses a particular | ||||||
|     # UnixCCompiler instance should set 'shared_lib_ext' -- we set a |     # UnixCCompiler instance should set 'shared_lib_ext' -- we set a | ||||||
|     # reasonable common default here, but it's not necessarily used on all |     # reasonable common default here, but it's not necessarily used on all | ||||||
|     # Unices! |     # Unices! | ||||||
|  |  | ||||||
|  | @ -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'. | ||||||
|  |  | ||||||
|  | @ -18,18 +18,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 not supported') |     @unittest.skipIf(sys.dont_write_bytecode, 'byte-compile not supported') | ||||||
|     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')" | ||||||
|  | @ -422,7 +419,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: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Éric Araujo
						Éric Araujo