Show More
@@ -24,13 +24,17 b' These imports will not be delayed:' | |||
|
24 | 24 | b = __import__(a) |
|
25 | 25 | ''' |
|
26 | 26 | |
|
27 | import __builtin__, os | |
|
27 | import __builtin__, os, sys | |
|
28 | 28 | _origimport = __import__ |
|
29 | 29 | |
|
30 | 30 | nothing = object() |
|
31 | 31 | |
|
32 | 32 | try: |
|
33 | _origimport(__builtin__.__name__, {}, {}, None, -1) | |
|
33 | # Python 3 doesn't have relative imports nor level -1. | |
|
34 | level = -1 | |
|
35 | if sys.version_info[0] >= 3: | |
|
36 | level = 0 | |
|
37 | _origimport(__builtin__.__name__, {}, {}, None, level) | |
|
34 | 38 | except TypeError: # no level argument |
|
35 | 39 | def _import(name, globals, locals, fromlist, level): |
|
36 | 40 | "call _origimport with no level argument" |
@@ -55,7 +59,7 b' def _hgextimport(importfunc, name, globa' | |||
|
55 | 59 | |
|
56 | 60 | class _demandmod(object): |
|
57 | 61 | """module demand-loader and proxy""" |
|
58 |
def __init__(self, name, globals, locals, level= |
|
|
62 | def __init__(self, name, globals, locals, level=level): | |
|
59 | 63 | if '.' in name: |
|
60 | 64 | head, rest = name.split('.', 1) |
|
61 | 65 | after = [rest] |
@@ -105,7 +109,7 b' class _demandmod(object):' | |||
|
105 | 109 | self._load() |
|
106 | 110 | setattr(self._module, attr, val) |
|
107 | 111 | |
|
108 |
def _demandimport(name, globals=None, locals=None, fromlist=None, level= |
|
|
112 | def _demandimport(name, globals=None, locals=None, fromlist=None, level=level): | |
|
109 | 113 | if not locals or name in ignore or fromlist == ('*',): |
|
110 | 114 | # these cases we can't really delay |
|
111 | 115 | return _hgextimport(_import, name, globals, locals, fromlist, level) |
General Comments 0
You need to be logged in to leave comments.
Login now