author | Danek Duvall <danek.duvall@oracle.com> |
Mon, 22 Feb 2016 14:29:22 -0800 | |
changeset 5481 | 5e30cd0645e7 |
permissions | -rw-r--r-- |
5481
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
1 |
Mercurial's demandload system is incompatible with sqlalchemy. |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
2 |
|
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
3 |
This was reported upstream as |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
4 |
|
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
5 |
https://bz.mercurial-scm.org/show_bug.cgi?id=5085 |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
6 |
|
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
7 |
and is available in the upstream repository in changesets c25e3fd38ff1 and |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
8 |
9ff7261cc0f5. |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
9 |
|
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
10 |
diff --git a/mercurial/demandimport.py b/mercurial/demandimport.py |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
11 |
--- a/mercurial/demandimport.py |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
12 |
+++ b/mercurial/demandimport.py |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
13 |
@@ -174,7 +174,12 @@ def _demandimport(name, globals=None, lo |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
14 |
""" |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
15 |
symbol = getattr(mod, attr, nothing) |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
16 |
if symbol is nothing: |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
17 |
- symbol = _demandmod(attr, mod.__dict__, locals, level=1) |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
18 |
+ mn = '%s.%s' % (mod.__name__, attr) |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
19 |
+ if mn in ignore: |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
20 |
+ importfunc = _origimport |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
21 |
+ else: |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
22 |
+ importfunc = _demandmod |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
23 |
+ symbol = importfunc(attr, mod.__dict__, locals, level=1) |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
24 |
setattr(mod, attr, symbol) |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
25 |
|
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
26 |
# Record the importing module references this symbol so we can |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
27 |
@@ -250,6 +255,7 @@ ignore = [ |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
28 |
'_sre', # issue4920 |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
29 |
'rfc822', |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
30 |
'mimetools', |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
31 |
+ 'sqlalchemy.events', # has import-time side effects (issue5085) |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
32 |
# setuptools 8 expects this module to explode early when not on windows |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
33 |
'distutils.msvc9compiler' |
5e30cd0645e7
21549200 mercurial 3.7.1
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
34 |
] |