aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/sdist3.py
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2009-09-11 22:46:00 +0200
committerMartin v. Löwis <martin@v.loewis.de>2009-09-11 22:46:00 +0200
commit6badc540234386ca7a27d3c90b22c565472475f1 (patch)
tree9eb7c21440fa009e137d5c91093066f914290557 /setuptools/command/sdist3.py
parentb863dd62d8defc800fcbff6fa07eb73d4351acb9 (diff)
downloadexternal_python_setuptools-6badc540234386ca7a27d3c90b22c565472475f1.tar.gz
external_python_setuptools-6badc540234386ca7a27d3c90b22c565472475f1.tar.bz2
external_python_setuptools-6badc540234386ca7a27d3c90b22c565472475f1.zip
Add sdist3 command.
--HG-- branch : distribute extra : rebase_source : 47f2fee9a8361cabc8160df8dd30dacc67f0f42b
Diffstat (limited to 'setuptools/command/sdist3.py')
-rw-r--r--setuptools/command/sdist3.py34
1 files changed, 34 insertions, 0 deletions
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)