diff options
Diffstat (limited to 'setuptools')
| -rw-r--r-- | setuptools/command/__init__.py | 2 | ||||
| -rw-r--r-- | setuptools/command/sdist3.py | 34 |
2 files changed, 35 insertions, 1 deletions
diff --git a/setuptools/command/__init__.py b/setuptools/command/__init__.py index f898822b..8f5ba21c 100644 --- a/setuptools/command/__init__.py +++ b/setuptools/command/__init__.py @@ -1,7 +1,7 @@ __all__ = [ 'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop', 'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts', - 'sdist', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts', + 'sdist', 'sdist3', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts', 'register', 'bdist_wininst', ] diff --git a/setuptools/command/sdist3.py b/setuptools/command/sdist3.py new file mode 100644 index 00000000..4fbfa8db --- /dev/null +++ b/setuptools/command/sdist3.py @@ -0,0 +1,34 @@ +from distutils import log +from sdist import sdist +from lib2to3.refactor import RefactoringTool, get_fixers_from_package + + +class _RefactoringTool(RefactoringTool): + def log_error(self, msg, *args, **kw): + log.error(msg, *args) + + def log_message(self, msg, *args): + log.info(msg, *args) + + def log_debug(self, msg, *args): + log.debug(msg, *args) + + +class sdist3(sdist): + description = "sdist version that runs 2to3 on all sources before packaging" + fixer_names = None + + def copy_file(self, file, dest, link=None): + # We ignore the link parameter, always demanding a copy, so that + # 2to3 won't overwrite the original file. + sdist.copy_file(self, file, dest) + + def make_release_tree(self, base_dir, files): + sdist.make_release_tree(self, base_dir, files) + + # run 2to3 on all files + fixer_names = self.fixer_names + if fixer_names is None: + fixer_names = get_fixers_from_package('lib2to3.fixes') + r = _RefactoringTool(fixer_names) + r.refactor([f for f in files if f.endswith(".py")], write=True) |
