o ?Og,@s( ddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lm Z d d lmZd dlZd dlZd dlZd dlZd dlZddZddZd#ddZd#ddZeddZddZddZddZGdd d ejZGd!d"d"eZdS)$)Loader)module_from_spec) _resolve_name)spec_from_loader) _find_spec) MAGIC_NUMBER)_RAW_MAGIC_NUMBER)cache_from_source) decode_source)source_from_cache)spec_from_file_location)contextmanagerNcCs tt|SN)_imp source_hashr) source_bytesr5/opt/alt/python310/lib64/python3.10/importlib/util.pyrs rcCs^ |ds|S|stdt|dd}|D] }|dkr n|d7}qt||d||S)N.zno package specified for z% (required for relative module names)r r) startswith ImportErrorreprr)namepackagelevel characterrrr resolve_names  rcCsp |tjvr t||Stj|}|durdSz|j}Wnty*td|dw|dur6td||S)N{}.__spec__ is not set{}.__spec__ is None)sysmodulesr__spec__AttributeError ValueErrorformat)rpathmodulespecrrr_find_spec_from_path*s     r)c Cs |dr t||n|}|tjvrH|dd}|rAt|dgd}z|j}Wnty@}z td|d||d|d}~wwd}t ||Stj|}|durSdSz|j }Wntygt d |dw|durst d ||S) Nrr __path__)fromlistz __path__ attribute not found on z while trying to find )rrr) rrr r! rpartition __import__r*r#ModuleNotFoundErrorrr"r$r%) rrfullname parent_nameparent parent_pather'r(rrr find_specIs@      r4c cs|tjv}tj|}|stt|}d|_|tj|<z-z|VWnty=|s;ztj|=Wn ty:YnwYnwWd|_dSWd|_dSd|_w)NTF)r r!gettype__initializing__ ExceptionKeyError)r is_reloadr'rrr_module_to_loadvs,         r;c tfdd}|S)NcsVtjdtdd|i|}t|dddur)|j|_t|ds)|jdd|_|S)NkThe import system now takes care of this automatically; this decorator is slated for removal in Python 3.12 stacklevel __package__r*rr )warningswarnDeprecationWarninggetattr__name__rAhasattrr,)argskwargsr'fxnrrset_package_wrappers z(set_package..set_package_wrapper functoolswraps)rKrLrrJr set_packages rPcr<)Ncs@tjdtdd|g|Ri|}t|dddur||_|S)Nr=r>r? __loader__)rBrCrDrErQ)selfrHrIr'rJrrset_loader_wrappersz&set_loader..set_loader_wrapperrM)rKrSrrJr set_loadersrTcs, tjdtddtfdd}|S)Nr=r>r?c st|8}||_z||}Wn ttfyYnw|r!||_n|dd|_||g|Ri|WdS1s?wYdS)Nrr )r;rQ is_packagerr#rAr,)rRr/rHrIr'rUrJrrmodule_for_loader_wrappers $z4module_for_loader..module_for_loader_wrapper)rBrCrDrNrO)rKrVrrJrmodule_for_loadersrWc@seZdZ ddZddZdS) _LazyModulecCs tj|_|jj}|jjd}|j}i}|D]\}}||vr%|||<qt||t||kr5|||<q|jj ||t j vrUt|tt j |krUt d|d|j|t||S)N__dict__zmodule object for z. substituted in sys.modules during a lazy load)types ModuleType __class__r"r loader_staterYitemsidloader exec_moduler r!r$updaterE)rRattr original_name attrs_then attrs_now attrs_updatedkeyvaluerrr__getattribute__s$     z_LazyModule.__getattribute__cCs ||t||dSr)rjdelattr)rRrcrrr __delattr__s z_LazyModule.__delattr__N)rF __module__ __qualname__rjrlrrrrrXs "rXc@s>eZdZ eddZeddZddZddZd d Z d S) LazyLoadercCst|ds tddS)Nraz loader must define exec_module())rG TypeError)r`rrr__check_eager_loaders zLazyLoader.__check_eager_loadercs fddS)Ncs|i|Srr)rHrIclsr`rrsz$LazyLoader.factory..)_LazyLoader__check_eager_loaderrrrrrrfactorys zLazyLoader.factorycCs||||_dSr)rur`)rRr`rrr__init__s  zLazyLoader.__init__cCs |j|Sr)r` create_module)rRr(rrrrxs zLazyLoader.create_modulecCsB |j|j_|j|_i}|j|d<|j|d<||j_t|_dS)NrYr\)r`r"rQrYcopyr\r]rX)rRr'r]rrrra"s   zLazyLoader.exec_moduleN) rFrmrn staticmethodru classmethodrvrwrxrarrrrro s   ror) _abcr _bootstraprrrr_bootstrap_externalrrr r r r contextlibrrrNr rZrBrrr)r4r;rPrTrWr[rXrorrrrs:              - (.