From: Philip Jenvey Date: Fri, 2 Mar 2012 08:21:18 +0000 (-0800) Subject: unmonkeypatch the 2to3 preprocessor so we don't disturb subsequent runs X-Git-Tag: rel_0_7_6~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d43079e34a66c3718127266bc5eaa3041c69447;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git unmonkeypatch the 2to3 preprocessor so we don't disturb subsequent runs patch from mcdonc fixes #2421 --- diff --git a/setup.py b/setup.py index 94ab90278f..53e9b7cfc5 100644 --- a/setup.py +++ b/setup.py @@ -31,12 +31,6 @@ if sys.version_info < (2, 4): raise Exception("SQLAlchemy requires Python 2.4 or higher.") elif sys.version_info >= (3, 0): py3k = True - # monkeypatch our preprocessor - # onto the 2to3 tool. - from sa2to3 import refactor_string - from lib2to3.refactor import RefactoringTool - RefactoringTool.refactor_string = refactor_string - if has_setuptools: extra.update( use_2to3=True, @@ -153,8 +147,28 @@ def run_setup(with_cext): **kwargs ) +def monkeypatch2to3(): + from sa2to3 import refactor_string + from lib2to3.refactor import RefactoringTool + RefactoringTool.old_refactor_string = RefactoringTool.refactor_string + RefactoringTool.refactor_string = refactor_string + +def unmonkeypatch2to3(): + from lib2to3.refactor import RefactoringTool + if hasattr(RefactoringTool, 'old_refactor_string'): + RefactoringTool.refactor_string = RefactoringTool.old_refactor_string + if pypy or jython or py3k: - run_setup(False) + if py3k: + # monkeypatch our preprocessor onto the 2to3 tool. + monkeypatch2to3() + try: + run_setup(False) + finally: + if py3k: + # unmonkeypatch to not stomp other setup.py's that are compiled + # and exec'd and which also require 2to3 fixing + unmonkeypatch2to3() status_msgs( "WARNING: C extensions are not supported on " + "this Python platform, speedups are not enabled.",