[PATCH 2 of 2] demandimport: support importing builtins for Python 3

Gregory Szorc gregory.szorc at gmail.com
Sat Jun 27 19:31:39 CDT 2015


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1435451466 25200
#      Sat Jun 27 17:31:06 2015 -0700
# Node ID b5fe662ba24bc60aa7623a0a0cca681b54509c70
# Parent  9f0cea1d292415d264798752fdc5bbe658b9b5e0
demandimport: support importing builtins for Python 3

__builtin__ was renamed to builtins in Python 3. If importing
__builtin__ fails, fall back to importing builtins in order to support
Python 3.

diff --git a/mercurial/demandimport.py b/mercurial/demandimport.py
--- a/mercurial/demandimport.py
+++ b/mercurial/demandimport.py
@@ -25,9 +25,14 @@ These imports will not be delayed:
 '''
 
 import os, sys
 from contextlib import contextmanager
-import __builtin__ as builtins
+
+# __builtin__ in Python 2, builtins in Python 3.
+try:
+    import __builtin__ as builtins
+except ImportError:
+    import builtins
 
 _origimport = __import__
 
 nothing = object()


More information about the Mercurial-devel mailing list