\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sdZddlmZddlZddlZddlZddlmZej Z e Z e Z dZde fdYZd ejkZdddd d Zead Zd ZdZdZe dZdS(sU demandimport - automatic demandloading of modules To enable this module, do: import demandimport; demandimport.enable() Imports of the following forms will be demand-loaded: import a, b.c import a.b as c from a import b,c # a will be loaded immediately These imports will not be delayed: from a import * b = __import__(a) i(tabsolute_importNi(ttracingcO@sy|||||SWntk r|s3nd|}|jddd}|jddjddd}||krn|||||SXdS(Nshgext_%st.iit__name__t(t ImportErrortsplittget(t importfunctnametglobalstargstkwargst hgextnametnameroott contextroot((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt _hgextimport)s  " t _demandmodcB@steZdZdZdZdZdZdZdZdZ dZ e d Z e d ZRS( sxmodule demand-loader and proxy Specify 1 as 'level' argument at construction, to import module relatively. c C@s{d|kr0|jdd\}}|g}n |}g}tj|d|||||tftj|dddS(NRit_datat_module(Rtobjectt __setattr__tsettNone(tselfR R tlocalstleveltheadtresttafter((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt__init__?s   cC@s|jdj|dS(s%add to the list of submodules to loadiN(Rtappend(RR ((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt_extendJscC@s|jdj|dS(sRecord that the named module ``name`` imports this module. References to this proxy class having the name of this module will be replaced at module load time. We assume the symbol inside the importing module is identical to the "head" name of this module. We don't actually know if "as X" syntax is being used to change the symbol name because this information isn't exposed to __import__. iN(Rtadd(RR ((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt_addrefNs c @s|jstjd|jdh|j\}}}}}}tt|||d|}||kr|j}|r||k std||fdSfdx|D]}||qW|r|j||kr|||is(RR(R((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt__repr__s cO@stdt|dS(Ns%s object is not callable(t TypeErrortrepr(RR R ((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt__call__scC@s|jt|j|S(N(R5R#R(Rtattr((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt __getattr__s cC@s!|jt|j||dS(N(R5R%R(RR:tval((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyRs cC@s|j|jjS(N(R5RR&(R((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyR&s cC@s|j|jjS(N(R5Rt__doc__(R((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyR=s ( Rt __module__R=RR R"R5R6R9R;RtpropertyR&(((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyR8s  4    t__pypy__ic @sldks$|tks$|d kr=tt||||S|sd|kr|jdd\}}|r|jdd|krt||||S|krt|tr|j|n|Snt|||S|jdfd}d}|dkr"|rUtt||d|} || |} nt r} t j | } t | d t t kr| jddd} t j | } n|dkr| jd|dd} t j | } qntt||d|} x|D]} || | qW| Stt||} || |} x|D]} || | qMW| SdS( Nt*RiRc@st||t}t|dttk}|tkr|r@dSd|j|f}|tkrht}nt}|||jdd}t|||nrt|tr|j ndS(sProcess an imported symbol in the import statement. If the symbol doesn't exist in the parent module, and if the parent module is a package, it must be a module. We set missing modules up as _demandmod instances. t__path__Ns%s.%sRi( R#R$RtignoresR-RR&R%t isinstanceR"(R'R:tsymboltnonpkgtmnR(t globalnameR(sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pytprocessfromitems   cS@s|}x|jddD]}t||t}|tkrot||j|jdd}t|||n5|jd|tjkrtj|jd|}n|}qW|S(NRiR( RR#R$RR&R%RR/R0(trootmodR3R'tcomptobj((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt chainmoduless  iRRB(RA(RRCRR-RRRDRR t_pypyR/R0R#R$trsplit( R R RtfromlistRtbaseRRIRMRJR'RGR2((RHRsD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt _demandimportsN$            cC@s |adS(N(RC(t ignoreset((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pytinitscC@s tjtkS(N(tbuiltinst __import__RR(((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt isenabledscC@s tt_dS(s'enable global demand-loading of modulesN(RRRURV(((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pytenable"scC@s tt_dS(s(disable global demand-loading of modulesN(R-RURV(((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pytdisable&scc@s:t}|rtnz dVWd|r5tnXdS(s;context manager for disabling demandimport in 'with' blocksN(RWRYRX(t demandenabled((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyt deactivated*s   (R=t __future__Rt __builtin__RUt contextlibR/RRtcontextmanagerRVR-RR$RRtbuiltin_module_namesRNRRRRRCRTRWRXRYR[(((sD/usr/lib64/python2.7/site-packages/hgdemandimport/demandimportpy2.pyts$      op