From 33b6450d23cbe66457e3392b9d187f20d888601c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Wed, 15 Oct 2008 05:58:17 +0000 Subject: Issue #4072: Restore build_py_2to3. Add a distutils demo for build_py_2to3. --- Demo/distutils/test2to3/README | 3 +++ Demo/distutils/test2to3/setup.py | 18 +++++++++++++++++ Demo/distutils/test2to3/test2to3/__init__.py | 1 + Demo/distutils/test2to3/test2to3/hello.py | 5 +++++ Lib/distutils/command/build_py.py | 30 +++++++++++++++++----------- Misc/NEWS | 7 +++++++ 6 files changed, 52 insertions(+), 12 deletions(-) create mode 100644 Demo/distutils/test2to3/README create mode 100644 Demo/distutils/test2to3/setup.py create mode 100644 Demo/distutils/test2to3/test2to3/__init__.py create mode 100644 Demo/distutils/test2to3/test2to3/hello.py diff --git a/Demo/distutils/test2to3/README b/Demo/distutils/test2to3/README new file mode 100644 index 0000000..9365593 --- /dev/null +++ b/Demo/distutils/test2to3/README @@ -0,0 +1,3 @@ +This project demonstrates how a distutils package +can support Python 2.x and Python 3.x from a single +source, using lib2to3. \ No newline at end of file diff --git a/Demo/distutils/test2to3/setup.py b/Demo/distutils/test2to3/setup.py new file mode 100644 index 0000000..3abb5ff --- /dev/null +++ b/Demo/distutils/test2to3/setup.py @@ -0,0 +1,18 @@ +# -*- coding: iso-8859-1 -*- +from distutils.core import setup + +try: + from distutils.command.build_py import build_py_2to3 as build_py +except ImportError: + from distutils.command.build_py import build_py + +setup( + name = "test2to3", + version = "1.0", + description = "2to3 distutils test package", + author = "Martin v. Löwis", + author_email = "python-dev@python.org", + license = "PSF license", + packages = ["test2to3"], + cmdclass = {'build_py':build_py} +) diff --git a/Demo/distutils/test2to3/test2to3/__init__.py b/Demo/distutils/test2to3/test2to3/__init__.py new file mode 100644 index 0000000..1bb8bf6 --- /dev/null +++ b/Demo/distutils/test2to3/test2to3/__init__.py @@ -0,0 +1 @@ +# empty diff --git a/Demo/distutils/test2to3/test2to3/hello.py b/Demo/distutils/test2to3/test2to3/hello.py new file mode 100644 index 0000000..f52926b --- /dev/null +++ b/Demo/distutils/test2to3/test2to3/hello.py @@ -0,0 +1,5 @@ +def hello(): + try: + print "Hello, world" + except IOError, e: + print e.errno diff --git a/Lib/distutils/command/build_py.py b/Lib/distutils/command/build_py.py index 09f6d23..7728489 100644 --- a/Lib/distutils/command/build_py.py +++ b/Lib/distutils/command/build_py.py @@ -384,6 +384,18 @@ class build_py (Command): byte_compile(files, optimize=self.optimize, force=self.force, prefix=prefix, dry_run=self.dry_run) +from lib2to3.refactor import RefactoringTool, get_fixers_from_package +class DistutilsRefactoringTool(RefactoringTool): + def log_error(self, msg, *args, **kw): + # XXX ignores 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 build_py_2to3(build_py): def run(self): self.updated_files = [] @@ -396,18 +408,12 @@ class build_py_2to3(build_py): self.build_package_data() # 2to3 - from lib2to3.refactor import RefactoringTool - 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) + fixers = get_fixers_from_package('lib2to3.fixes') + options = dict(fix=[], list_fixes=[], + print_function=False, verbose=False, + write=True) + r = DistutilsRefactoringTool(fixers, options) + r.refactor(self.updated_files, write=True) # Remaining base class code self.byte_compile(self.get_outputs(include_bytecode=0)) diff --git a/Misc/NEWS b/Misc/NEWS index 139fc57..c1ad97d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -31,6 +31,8 @@ Core and Builtins Library ------- +- Issue #4072: Restore build_py_2to3. + - Issue #4014: Don't claim that Python has an Alpha release status, in addition to claiming it is Mature. @@ -63,6 +65,11 @@ Build - Issue #4018: Disable "for me" installations on Vista. +Tools/Demos +----------- + +- Issue #4072: Add a distutils demo for build_py_2to3. + What's New in Python 3.0 release candidate 1 ============================================ -- cgit v0.12