comparison mercurial/policy.py @ 29266:b3a677c82a35

debuginstall: expose modulepolicy With this, you can check for pure easily: $ HGMODULEPOLICY=py ./hg debuginstall -T "{hgmodulepolicy}" py
author timeless <timeless@mozdev.org>
date Wed, 09 Mar 2016 19:55:45 +0000
parents
children b4d117cee636
comparison
equal deleted inserted replaced
29265:3f9e68864ccc 29266:b3a677c82a35
1 # policy.py - module policy logic for Mercurial.
2 #
3 # Copyright 2015 Gregory Szorc <gregory.szorc@gmail.com>
4 #
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
7
8 from __future__ import absolute_import
9
10 import os
11 import sys
12
13 # Rules for how modules can be loaded. Values are:
14 #
15 # c - require C extensions
16 # allow - allow pure Python implementation when C loading fails
17 # py - only load pure Python modules
18 #
19 # By default, require the C extensions for performance reasons.
20 policy = 'c'
21 try:
22 from . import __modulepolicy__
23 policy = __modulepolicy__.modulepolicy
24 except ImportError:
25 pass
26
27 # PyPy doesn't load C extensions.
28 #
29 # The canonical way to do this is to test platform.python_implementation().
30 # But we don't import platform and don't bloat for it here.
31 if '__pypy__' in sys.builtin_module_names:
32 policy = 'py'
33
34 # Our C extensions aren't yet compatible with Python 3. So use pure Python
35 # on Python 3 for now.
36 if sys.version_info[0] >= 3:
37 policy = 'py'
38
39 # Environment variable can always force settings.
40 policy = os.environ.get('HGMODULEPOLICY', policy)