demandimport: look for 'mod' suffix as alternative name for module reference
It's widely used in our codebase.
--- a/hgdemandimport/demandimportpy2.py Mon May 01 14:26:56 2017 +0900
+++ b/hgdemandimport/demandimportpy2.py Fri Apr 28 23:46:16 2017 +0900
@@ -132,8 +132,11 @@
subload(mod, x)
# Replace references to this proxy instance with the actual module.
- if locals and locals.get(head) is self:
- locals[head] = mod
+ if locals:
+ if locals.get(head) is self:
+ locals[head] = mod
+ elif locals.get(head + r'mod') is self:
+ locals[head + r'mod'] = mod
for modname in modrefs:
modref = sys.modules.get(modname, None)
--- a/tests/test-demandimport.py Mon May 01 14:26:56 2017 +0900
+++ b/tests/test-demandimport.py Fri Apr 28 23:46:16 2017 +0900
@@ -52,6 +52,9 @@
import re as fred
print("fred =", f(fred))
+import re as remod
+print("remod =", f(remod))
+
import sys as re
print("re =", f(re))
@@ -59,6 +62,9 @@
print("fred.sub =", f(fred.sub))
print("fred =", f(fred))
+remod.escape # use remod
+print("remod =", f(remod))
+
print("re =", f(re))
print("re.stderr =", f(re.stderr))
print("re =", f(re))
--- a/tests/test-demandimport.py.out Mon May 01 14:26:56 2017 +0900
+++ b/tests/test-demandimport.py.out Fri Apr 28 23:46:16 2017 +0900
@@ -9,10 +9,12 @@
hgweb_mod = <unloaded module 'hgweb_mod'>
hgweb = <module 'mercurial.hgweb' from '?'>
fred = <unloaded module 're'>
+remod = <unloaded module 're'>
re = <unloaded module 'sys'>
fred = <unloaded module 're'>
fred.sub = <function sub at 0x?>
fred = <proxied module 're'>
+remod = <module 're' from '?'>
re = <unloaded module 'sys'>
re.stderr = <open file '<whatever>', mode 'w' at 0x?>
re = <proxied module 'sys'>