Discussion:
[Python-3000-checkins] r66901 - in python/branches/py3k: Demo/distutils Demo/distutils/test2to3 Demo/distutils/test2to3/README Demo/distutils/test2to3/setup.py Demo/distutils/test2to3/test2to3 Demo/distutils/test2to3/test2to3/__init__.py Demo/distutils/test2to3/test2to3/hello.py Lib/distutils/command/build_py.py Misc/NEWS
martin.v.loewis
2008-10-15 05:58:18 UTC
Permalink
Author: martin.v.loewis
Date: Wed Oct 15 07:58:17 2008
New Revision: 66901

Log:
Issue #4072: Restore build_py_2to3. Add a distutils demo for
build_py_2to3.


Added:
python/branches/py3k/Demo/distutils/
python/branches/py3k/Demo/distutils/test2to3/
python/branches/py3k/Demo/distutils/test2to3/README (contents, props changed)
python/branches/py3k/Demo/distutils/test2to3/setup.py (contents, props changed)
python/branches/py3k/Demo/distutils/test2to3/test2to3/
python/branches/py3k/Demo/distutils/test2to3/test2to3/__init__.py (contents, props changed)
python/branches/py3k/Demo/distutils/test2to3/test2to3/hello.py (contents, props changed)
Modified:
python/branches/py3k/Lib/distutils/command/build_py.py
python/branches/py3k/Misc/NEWS

Added: python/branches/py3k/Demo/distutils/test2to3/README
==============================================================================
--- (empty file)
+++ python/branches/py3k/Demo/distutils/test2to3/README Wed Oct 15 07:58:17 2008
@@ -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

Added: python/branches/py3k/Demo/distutils/test2to3/setup.py
==============================================================================
--- (empty file)
+++ python/branches/py3k/Demo/distutils/test2to3/setup.py Wed Oct 15 07:58:17 2008
@@ -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 at python.org",
+ license = "PSF license",
+ packages = ["test2to3"],
+ cmdclass = {'build_py':build_py}
+)

Added: python/branches/py3k/Demo/distutils/test2to3/test2to3/__init__.py
==============================================================================
--- (empty file)
+++ python/branches/py3k/Demo/distutils/test2to3/test2to3/__init__.py Wed Oct 15 07:58:17 2008
@@ -0,0 +1 @@
+# empty

Added: python/branches/py3k/Demo/distutils/test2to3/test2to3/hello.py
==============================================================================
--- (empty file)
+++ python/branches/py3k/Demo/distutils/test2to3/test2to3/hello.py Wed Oct 15 07:58:17 2008
@@ -0,0 +1,5 @@
+def hello():
+ try:
+ print "Hello, world"
+ except IOError, e:
+ print e.errno

Modified: python/branches/py3k/Lib/distutils/command/build_py.py
==============================================================================
--- python/branches/py3k/Lib/distutils/command/build_py.py (original)
+++ python/branches/py3k/Lib/distutils/command/build_py.py Wed Oct 15 07:58:17 2008
@@ -384,6 +384,18 @@
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 @@
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))

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS (original)
+++ python/branches/py3k/Misc/NEWS Wed Oct 15 07:58:17 2008
@@ -31,6 +31,8 @@
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 @@

- 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
============================================

Loading...