3 \ƒ*ã@s ddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z d d l mZd d lZd d lZd d lZd d lZdd„Zd dd„Zd!dd„Zedd„ƒZdd„Zdd„Zdd„ZGdd„dejƒZGdd„dejƒZd S)"é)Úabc)Úmodule_from_spec)Ú _resolve_name)Úspec_from_loader)Ú _find_spec)Ú MAGIC_NUMBER)Úcache_from_source)Ú decode_source)Úsource_from_cache)Úspec_from_file_locationé)ÚcontextmanagerNcCs^|jdƒs|S|s&tdt|ƒ›d�ƒ‚d}x|D]}|dkr>P|d7}q0Wt||d…||ƒS)NÚ.zno package specified for z% (required for relative module names)r r)Ú startswithÚ ValueErrorÚreprr)ÚnameÚpackageÚlevelÚ character©rú&/usr/lib64/python3.6/importlib/util.pyÚ resolve_names   rc Csx|tjkrt||ƒStj|}|dkr*dSy |j}Wn$tk rXtdj|ƒƒd‚YnX|dkrptdj|ƒƒ‚|SdS)Nz{}.__spec__ is not setz{}.__spec__ is None)ÚsysÚmodulesrÚ__spec__ÚAttributeErrorrÚformat)rÚpathÚmoduleÚspecrrrÚ_find_spec_from_path#s    r!c Cs¾|jdƒrt||ƒn|}|tjkrZ|jdƒd}|rNt|dgd�}t||jƒSt|dƒSn`tj|}|dkrpdSy |j}Wn$t k ržt dj |ƒƒd‚YnX|dkr¶t dj |ƒƒ‚|SdS)Nrr Ú__path__)Úfromlistz{}.__spec__ is not setz{}.__spec__ is None) rrrrÚ rpartitionÚ __import__rr"rrrr)rrÚfullnameÚ parent_nameÚparentrr rrrÚ find_specBs"     r)ccsŽ|tjk}tjj|ƒ}|s6ttƒ|ƒ}d|_|tj|<zJy |VWn:tk r||sxy tj|=Wntk rvYnXYnXWdd|_XdS)NTF)rrÚgetÚtypeÚ__initializing__Ú ExceptionÚKeyError)rÚ is_reloadrrrrÚ_module_to_loadjs      r0cstjˆƒ‡fdd„ƒ}|S)NcsRtjdtdd�ˆ||Ž}t|ddƒdkrN|j|_t|dƒsN|jjdƒd|_|S)Nz7The import system now takes care of this automatically.é)Ú stacklevelÚ __package__r"rr )ÚwarningsÚwarnÚDeprecationWarningÚgetattrÚ__name__r3Úhasattrr$)ÚargsÚkwargsr)ÚfxnrrÚset_package_wrapperŠs   z(set_package..set_package_wrapper)Ú functoolsÚwraps)r<r=r)r<rÚ set_package„s r@cstjˆƒ‡fdd„ƒ}|S)Ncs:tjdtdd�ˆ|f|ž|Ž}t|ddƒdkr6||_|S)Nz7The import system now takes care of this automatically.r1)r2Ú __loader__)r4r5r6r7rA)Úselfr:r;r)r<rrÚset_loader_wrapper�s  z&set_loader..set_loader_wrapper)r>r?)r<rCr)r<rÚ set_loader—srDcs*tjdtdd�tjˆƒ‡fdd„ƒ}|S)Nz7The import system now takes care of this automatically.r1)r2cspt|ƒ�^}||_y|j|ƒ}Wnttfk r6YnX|rD||_n|jdƒd|_ˆ||f|ž|ŽSQRXdS)Nrr )r0rAÚ is_packageÚ ImportErrorrr3r$)rBr&r:r;rrE)r<rrÚmodule_for_loader_wrapper¼s z4module_for_loader..module_for_loader_wrapper)r4r5r6r>r?)r<rGr)r<rÚmodule_for_loader¨s rHc@seZdZdd„Zdd„ZdS)Ú _LazyModulec CsÎtj|_|jj}|jjd}|jjd}|j}i}xF|jƒD]:\}}||krV|||<q sz$LazyLoader.factory..)Ú_LazyLoader__check_eager_loader)rdrQr)rdrQrÚfactorys zLazyLoader.factorycCs|j|ƒ||_dS)N)rfrQ)rBrQrrrÚ__init__ s zLazyLoader.__init__cCs |jj|ƒS)N)rQÚ create_module)rBr rrrriszLazyLoader.create_modulecCs@|j|j_|j|_i}|jjƒ|d<|j|d<||j_t|_dS)NrJrK)rQrrArJÚcopyrKrNrI)rBrrNrrrrRs  zLazyLoader.exec_moduleN) r8r_r`Ú staticmethodrfÚ classmethodrgrhrirRrrrrraþs   ra)N)N)ÚrÚ _bootstraprrrrÚ_bootstrap_externalrrr r r Ú contextlibr r>rrLr4rr!r)r0r@rDrHrMrIÚLoaderrarrrrÚs.             ( '/