]S*@sddlmZddlmZddlmZddlmZddlmZddlmZm Z ddlm Z ddlm Z dd lm Z dd lm Z d d lmZd d lZd d lZd d lZd d lZddZd ddZd ddZeddZddZddZddZGdddejZGdddejZGd d!d!ejZd S)")abc)module_from_spec) _resolve_name)spec_from_loader) _find_spec) MAGIC_NUMBER_BACKCOMPAT_MAGIC_NUMBER)cache_from_source) decode_source)source_from_cache)spec_from_file_location)contextmanagerNcCsv|jds|S|s.tdj|d}x%|D]}|dkrNP|d7}q;Wt||d||S)N.z,{!r} is not a relative name (no leading dot)r r) startswith ValueErrorformatr)namepackagelevel characterr)/opt/alt/python35/lib64/python3.5/util.py resolve_names    rc Cs|tjkrt||Stj|}|dkr9dSy |j}Wn*tk rrtdj|dYn&X|dkrtdj||SdS)Nz{}.__spec__ is not setz{}.__spec__ is None)sysmodulesr__spec__AttributeErrorrr)rpathmodulespecrrr_find_spec_from_path#s      r!c Cs|jdrt||n|}|tjkr|jdd}|rqt|ddg}t||jSt|dSn|tj|}|dkrdSy |j}Wn*t k rt dj |dYn&X|dkrt dj ||SdS)Nrr fromlist__path__z{}.__spec__ is not setz{}.__spec__ is None) rrrr rpartition __import__rr#rrrr)rrfullname parent_nameparentrr rrr find_specBs"$     r)ccs|tjk}tjj|}|sOtt|}d|_|tj|.set_package_wrapper) functoolswraps)r<r=r)r<r set_packages! r@cs%tjfdd}|S)NcsMtjdtdd|||}t|dddkrI||_|S)Nz7The import system now takes care of this automatically.r1r2 __loader__)r4r5r6r7rA)selfr:r;r)r<rrset_loader_wrappers    z&set_loader..set_loader_wrapper)r>r?)r<rCr)r<r set_loaders!rDcs;tjdtddtjfdd}|S)Nz7The import system now takes care of this automatically.r1r2cst|y}||_y|j|}Wnttfk rEYn)X|rX||_n|jdd|_||||SWdQRXdS)Nrr )r0rA is_package ImportErrorrr3r$)rBr&r:r;rrE)r<rrmodule_for_loader_wrappers  z4module_for_loader..module_for_loader_wrapper)r4r5r6r>r?)r<rGr)r<rmodule_for_loaders  !rHc@seZdZdS)_ModuleN)r8 __module__ __qualname__rrrrrIs rIc@s(eZdZddZddZdS) _LazyModulec Cs t|_|jj}|jj}|j}i}x]|jD]O\}}||krb|||sz$LazyLoader.factory..)_LazyLoader__check_eager_loader)rcrRr)rcrRrfactory s zLazyLoader.factorycCs|j|||_dS)N)rerR)rBrRrrr__init__s zLazyLoader.__init__cCs t|jS)N)rIr)rBr rrr create_moduleszLazyLoader.create_modulecCs=|j|j_|j|_|jj|j_t|_dS)N)rRrrArOcopyrNrLrM)rBrrrrrSs zLazyLoader.exec_moduleN) r8rJrK staticmethodre classmethodrfrgrhrSrrrrr`s   r`) r _bootstraprrrr_bootstrap_externalrrr r r r contextlibrr>rtypesr4rr!r)r0r@rDrH ModuleTyperIrLLoaderr`rrrrs0     (   '.