c*dZddlZddlZejddk(ZerefZdZn efZddl mZiZ da ejZ dZdZdZd Zd ZGd d ZGd dZGddZdZy)zThis module implements a post import hook mechanism styled after what is described in PEP-369. Note that it doesn't cope with modules being reloaded. N) find_specFcfd}|S)Ncjd\}}|jd}t|tj|}|D]}t ||}||S)N:.)split __import__sysmodulesgetattr)module module_namefunctionattrscallbackattrnames 0/usr/lib/python3/dist-packages/wrapt/importer.py import_hookz4_create_import_hook_from_string..import_hook$s_ $ 3 Xs#;;;{+ /Dx.H /)rrs` r_create_import_hook_from_stringr#s  rctt|tr t|}t5ts*dat j jdtt jj|d}|%tj|gj|ddd ||yy#1swYxYw)NTr) isinstance string_typesr_post_import_hooks_lock_post_import_hooks_initr meta_pathinsertImportHookFinderr get_post_import_hooks setdefaultappend)hookrrs rregister_post_import_hookr'.s$ %.t4 A '&* # MM $4$6 7 t, >  ) )$ 3 : :4 @!A. V /AAs A8B..B7cfd}|S)Nctjtjj}jD]}t ||}||SN)r rr r rr )rrr entrypoints rrz8_create_import_hook_from_entrypoint..import_hookRsQ:))*;;z556$$ /Dx.H /rr)r+rs` r#_create_import_hook_from_entrypointr,Qs rc ddl}|j|D]#}t|}t ||j %y#t$rYywxYw)Nr)group) pkg_resources ImportErroriter_entry_pointsr,r'r)r.r/r+rs rdiscover_post_import_hooksr2ZsU$55E5B= 6zB!(JOO<= s? A  A ct|dd}t5tj|d}dddD] }|| y#1swYxYw)N__name__r)r rr#pop)rrhooksr&s rnotify_module_loadedr7isR 6:t ,D 1"&&tR01 V 11s AA ceZdZdZy)_ImportHookLoadercBtj|}t||Sr*)r r r7selffullnamers r load_modulez_ImportHookLoader.load_module}sX&V$ rN)r4 __module__ __qualname__r>rrrr9r9{srr9c*eZdZdZdZdZdZdZy)_ImportHookChainedLoaderc||_t|dr|j|_t|dr|j|_t|dr|j |_yy)Nr> create_module exec_module)loaderhasattr _load_moduler>_create_modulerD _exec_modulerE)r<rFs r__init__z!_ImportHookChainedLoader.__init__sV 6= )!..$  6? +#22$  6= )!..$  *rcGdd}t|d|d|fvr |j|_t|dd6t|jdd|ur|j|j_yyy#t$rYOwxYw)Nc eZdZy)7_ImportHookChainedLoader._set_loader..UNDEFINEDN)r4r?r@rrr UNDEFINEDrNsrrO __loader____spec__rF)r rFrPAttributeErrorrQ)r<rrOs r _set_loaderz$_ImportHookChainedLoader._set_loaders  6< 3d| C $(KK! FJ - 9FOOXt<D%)[[FOO "E :"  sA22 A>=A>ct|jj|}|j|t||Sr*)rFr>rSr7r;s rrHz%_ImportHookChainedLoader._load_modules1((2  V$ rc8|jj|Sr*)rFrD)r<specs rrIz'_ImportHookChainedLoader._create_modules{{((..rcr|j||jj|t|yr*)rSrFrEr7)r<rs rrJz%_ImportHookChainedLoader._exec_modules*   'V$rN)r4r?r@rKrSrHrIrJrrrrBrBs/10/%rrBc"eZdZdZddZddZy)r!ci|_yr*) in_progress)r<s rrKzImportHookFinder.__init__s rNct5|tvr dddy ddd||jvryd|j|< ts"t |t |j|=St t|dd}|r(t|tst||j|=S|j|=y#1swYxYw#|j|=wxYwNTrF) rr#rZrr r9r rrB)r<r=pathrFs r find_modulezImportHookFinder.find_modules % 11  1  t'' '%)" +8$(*"  * !8!4hE*V5M"N3F;  *  *_  ^  *s B8C*2C8CCcRt5|tvr dddy ddd||jvryd|j|< t|}t |dd}|r t |t st ||_||j|=S#1swYqxYw#|j|=wxYwr\)rr#rZrr rrBrF)r<r=r]targetrVrFs rrzImportHookFinder.find_specs% 11  1  t'' '%)" +X&DT8T2Fj1IJ6v>   *?  >  *s B ;B BB&r*)NN)r4r?r@rKr^rrrrr!r!s4+l(+rr!cfd}|S)Nc t||Sr*)r')r&rs rregisterzwhen_imported..register"s!$- rr)rrcs` r when_importedrd!s Or)__doc__r threading version_infoPY2 basestringrrstrimportlib.utilr#rRLockrrr'r,r2r7r9rBr!rdrrrrms   qQ;LI4L())//+ F= $4%4%lc+c+Pr