Add build_py_2to3.
This commit is contained in:
parent
3faa84f18e
commit
73a22f0500
|
@ -1820,7 +1820,25 @@ This module supplies the abstract base class :class:`Command`.
|
|||
:synopsis: Build the .py/.pyc files of a package
|
||||
|
||||
|
||||
.. % todo
|
||||
.. class:: build_py(Command)
|
||||
|
||||
.. class:: build_py_2to3(build_py)
|
||||
|
||||
Alternative implementation of build_py which also runs the
|
||||
2to3 conversion library on each .py file that is going to be
|
||||
installed. To use this in a setup.py file for a distribution
|
||||
that is designed to run with both Python 2.x and 3.x, add::
|
||||
|
||||
try:
|
||||
from distutils.command.build_py import build_py_2to3 as build_py
|
||||
except ImportError:
|
||||
from distutils.command.build_py import build_py
|
||||
|
||||
to your setup.py, and later::
|
||||
|
||||
cmdclass = {'build_py':build_py}
|
||||
|
||||
to the invocation of setup().
|
||||
|
||||
|
||||
:mod:`distutils.command.build_scripts` --- Build the scripts of a package
|
||||
|
|
|
@ -383,3 +383,27 @@ class build_py (Command):
|
|||
if self.optimize > 0:
|
||||
byte_compile(files, optimize=self.optimize,
|
||||
force=self.force, prefix=prefix, dry_run=self.dry_run)
|
||||
|
||||
class build_py_2to3(build_py):
|
||||
def run(self):
|
||||
from lib2to3.refactor import RefactoringTool
|
||||
self.updated_files = []
|
||||
build_py.run(self)
|
||||
class Options:
|
||||
pass
|
||||
o = Options()
|
||||
o.doctests_only = False
|
||||
o.fix = []
|
||||
o.list_fixes = []
|
||||
o.print_function = False
|
||||
o.verbose = False
|
||||
o.write = True
|
||||
r = RefactoringTool(o)
|
||||
r.refactor_args(self.updated_files)
|
||||
|
||||
def build_module(self, module, module_file, package):
|
||||
res = build_py.build_module(self, module, module_file, package)
|
||||
if res[1]:
|
||||
# file was copied
|
||||
self.updated_files.append(res[0])
|
||||
return res
|
||||
|
|
|
@ -23,6 +23,10 @@ Extension Modules
|
|||
Library
|
||||
-------
|
||||
|
||||
- The class distutils.commands.build_py.build_py_2to3 can be used
|
||||
as a build_py replacement to automatically run 2to3 on modules
|
||||
that are going to be installed.
|
||||
|
||||
- A new pickle protocol (protocol 3) is added with explicit support
|
||||
for bytes. This is the default protocol. It intentionally cannot
|
||||
be unpickled by Python 2.x.
|
||||
|
|
Loading…
Reference in New Issue