[PATCH 1 of 5] mercurial: use pure Python module policy on Python 3
Gregory Szorc
gregory.szorc at gmail.com
Sat Mar 12 22:11:32 UTC 2016
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1457817559 28800
# Sat Mar 12 13:19:19 2016 -0800
# Node ID afb4d2d519921346fd33b05880c677740ac8f086
# Parent d205c5f57b97ef6e26a85002022c940040c57169
mercurial: use pure Python module policy on Python 3
The C extensions don't yet work with Python 3. Let's minimize the
work required to get Mercurial running on Python 3 by always using
the pure Python module policy on Python 3.
diff --git a/mercurial/__init__.py b/mercurial/__init__.py
--- a/mercurial/__init__.py
+++ b/mercurial/__init__.py
@@ -30,16 +30,21 @@ except ImportError:
# PyPy doesn't load C extensions.
#
# The canonical way to do this is to test platform.python_implementation().
# But we don't import platform and don't bloat for it here.
if '__pypy__' in sys.builtin_module_names:
modulepolicy = 'py'
+# Our C extensions aren't yet compatible with Python 3. So use pure Python
+# on Python 3 for now.
+if sys.version_info[0] >= 3:
+ modulepolicy = 'py'
+
# Environment variable can always force settings.
modulepolicy = os.environ.get('HGMODULEPOLICY', modulepolicy)
# Modules that have both Python and C implementations. See also the
# set of .py files under mercurial/pure/.
_dualmodules = set([
'mercurial.base85',
'mercurial.bdiff',
More information about the Mercurial-devel
mailing list