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