demandimport: disable lazy import of __builtin__
authorMads Kiilerich <madski@unity3d.com>
Fri, 14 Oct 2016 03:03:39 +0200
changeset 30156 75c71c533977
parent 30155 b7a966ce89ed
child 30157 df224038c516
demandimport: disable lazy import of __builtin__ Demandimport uses the "try to import __builtin__, else use builtins" trick to handle Python 3. External libraries and extensions might do something similar. On Fedora 25 subversion-python-1.9.4-4.fc25.x86_64 will do just that (except the opposite) ... and it failed all subversion convert tests because demandimport was hiding that it didn't have builtins but should use __builtin__. The builtin module has already been imported when demandimport is loaded so there is no point in trying to import it on demand. Just always ignore both variants in demandimport.
mercurial/demandimport.py
--- a/mercurial/demandimport.py	Thu Oct 13 12:50:27 2016 +0200
+++ b/mercurial/demandimport.py	Fri Oct 14 03:03:39 2016 +0200
@@ -291,6 +291,8 @@
     'sqlalchemy.events', # has import-time side effects (issue5085)
     # setuptools 8 expects this module to explode early when not on windows
     'distutils.msvc9compiler',
+    '__builtin__',
+    'builtins',
     ]
 
 if _pypy: