changeset 14295:bb7e3b3e6e11

setup.py: workaround for missing bz2 module in IronPython IronPython does not provide the bz2 module on its own. This patch skips importing it to allow setup to continue. (minor tweaks by mpm)
author Zachary Gramana <zgramana@pottsconsultinggroup.com>
date Mon, 09 May 2011 15:16:56 -0400
parents 84256ba2fbf7
children 62e25c63fb3a
files setup.py
diffstat 1 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/setup.py	Wed May 11 08:07:51 2011 -0500
+++ b/setup.py	Mon May 09 15:16:56 2011 -0400
@@ -4,7 +4,7 @@
 # 'python setup.py install', or
 # 'python setup.py --help' for more options
 
-import sys
+import sys, platform
 if not hasattr(sys, 'version_info') or sys.version_info < (2, 4, 0, 'final'):
     raise SystemExit("Mercurial requires Python 2.4 or later.")
 
@@ -36,11 +36,21 @@
     raise SystemExit(
         "Couldn't import standard zlib (incomplete Python install).")
 
+# The base IronPython distribution (as of 2.7.1) doesn't support bz2
+isironpython = False
 try:
-    import bz2
+    isironpython = platform.python_implementation().lower().find("ironpython") != -1
 except:
-    raise SystemExit(
-        "Couldn't import standard bz2 (incomplete Python install).")
+    pass
+
+if isironpython:
+    print "warning: IronPython detected (no bz2 support)"
+else:
+    try:
+        import bz2
+    except:
+        raise SystemExit(
+            "Couldn't import standard bz2 (incomplete Python install).")
 
 import os, subprocess, time
 import shutil