[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 python-3000-checkins at python.org
Wed Oct 15 07:58:18 CEST 2008


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


More information about the Python-3000-checkins mailing list