From: Mike Bayer Date: Sun, 5 Jun 2011 15:58:26 +0000 (-0400) Subject: - Added a workaround for Python bug 7511 where X-Git-Tag: rel_0_7_1~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc75e0c6835ea53d6a84cfbf819240da2286486d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Added a workaround for Python bug 7511 where failure of C extension build does not raise an appropriate exception on Windows 64 bit + VC express [ticket:2184] --- diff --git a/CHANGES b/CHANGES index 2014abf94e..3c7bcd3d4d 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,12 @@ CHANGES ======= 0.7.1 ===== +- general + - Added a workaround for Python bug 7511 where + failure of C extension build does not + raise an appropriate exception on Windows 64 + bit + VC express [ticket:2184] + - orm - "delete-orphan" cascade is now allowed on self-referential relationships - this since diff --git a/setup.py b/setup.py index fb896972ae..58c9c8782e 100644 --- a/setup.py +++ b/setup.py @@ -51,14 +51,11 @@ ext_modules = [ sources=['lib/sqlalchemy/cextension/resultproxy.c']) ] +ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError) if sys.platform == 'win32' and sys.version_info > (2, 6): # 2.6's distutils.msvc9compiler can raise an IOError when failing to # find the compiler - ext_errors = ( - CCompilerError, DistutilsExecError, - DistutilsPlatformError, IOError) -else: - ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError) + ext_errors += (IOError,) class BuildFailed(Exception): @@ -79,6 +76,11 @@ class ve_build_ext(build_ext): build_ext.build_extension(self, ext) except ext_errors: raise BuildFailed() + except ValueError: + # this can happen on Windows 64 bit, see Python issue 7511 + if "'path'" in str(sys.exc_info()[1]): # works with both py 2/3 + raise BuildFailed() + raise cmdclass['build_ext'] = ve_build_ext