# HG changeset patch # User Yuya Nishihara # Date 1454753350 -32400 # Node ID c25e3fd38ff158c2545f33711f2895942059bad7 # Parent f16b84b1e40ec385836f75519e840500d72d7be4 demandimport: enforce ignore list while processing modules in fromlist If a module is loaded as "from . import x" form, there has been no way to disable demand loading for that module because name is ''. This patch makes it possible to prevent demand loading by '.x'. We don't use _hgextimport(_origimport) here since attr is known to be a sub-module name. Adding hgext_ to attr wouldn't make sense. diff -r f16b84b1e40e -r c25e3fd38ff1 mercurial/demandimport.py --- a/mercurial/demandimport.py Mon Feb 15 16:49:52 2016 -0800 +++ b/mercurial/demandimport.py Sat Feb 06 19:09:10 2016 +0900 @@ -174,7 +174,12 @@ """ symbol = getattr(mod, attr, nothing) if symbol is nothing: - symbol = _demandmod(attr, mod.__dict__, locals, level=1) + mn = '%s.%s' % (mod.__name__, attr) + if mn in ignore: + importfunc = _origimport + else: + importfunc = _demandmod + symbol = importfunc(attr, mod.__dict__, locals, level=1) setattr(mod, attr, symbol) # Record the importing module references this symbol so we can