diff options
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | setup.py | 12 |
2 files changed, 13 insertions, 5 deletions
@@ -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 @@ -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 |