grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]kSã @séddlmZddlZddlZddlZddlZddlZddlZddl m Z ddl Z dddddd d d d d dg Z dd„Z dd „Zddddd„Zdddd „Zeddd„ƒZddd„Zejejjeƒdd„ZGdd „d ƒZGdd „d ƒZy?ddlZddlmZddd„ZejeeƒWnek r™YnXd d„Zdd!d„Zd"d„Zd#d„Z d$d„Z!d%d „Z"dS)&é)ÚsingledispatchN)Ú ModuleTypeÚ get_importerÚiter_importersÚ get_loaderÚ find_loaderÚ walk_packagesÚ iter_modulesÚget_dataÚ ImpImporterÚ ImpLoaderÚ read_codeÚ extend_pathc Csby |j}WnDtk rS|j|ƒ}|dkr<dStjj||ƒSYn X||ƒSdS)N)Ú find_specÚAttributeErrorÚ find_moduleÚ importlibÚutilÚspec_from_loader)ÚfinderÚnamerÚloader©rú,/opt/alt/python35/lib64/python3.5/pkgutil.pyÚ _get_specs   rcCs]ddl}|jdƒ}|tjjkrC|tjjkrCdS|jdƒ|j|ƒS)Nréé)ÚmarshalÚreadrrÚ MAGIC_NUMBERÚ_BACKCOMPAT_MAGIC_NUMBERÚload)ÚstreamrÚmagicrrrr "s  Úc #sidd„‰xët||ƒD]Ú\}}}|||fV|ryt|ƒWnUtk rz|dk rv||ƒYqtk r§|dk r ||ƒn‚YqXttj|ddƒpÄg}‡fdd†|Dƒ}t||d|ƒEdHqWdS)NcSs||krdSd||.seenÚ__path__cs"g|]}ˆ|ƒs|‘qSrr)Ú.0r%)r'rrú fs z!walk_packages..Ú.)r Ú __import__Ú ImportErrorÚ ExceptionÚgetattrÚsysÚmodulesr)ÚpathÚprefixÚonerrorÚimporterrÚispkgr)r'rr2s      ccs†|dkrtƒ}ntt|ƒ}i}xR|D]J}xAt||ƒD]0\}}||krJd||<|||fVqJWq4WdS)Né)rÚmaprÚiter_importer_modules)r2r3Z importersÚyieldedÚirr6rrrr ks     cCs t|dƒsgS|j|ƒS)Nr )Úhasattrr )r5r3rrrr9ƒsr9c cs�|jdks%tjj|jƒ r)dSi}ddl}ytj|jƒ}Wntk rkg}YnX|jƒx|D]}|j|ƒ}|dks}||kr­q}tjj|j|ƒ}d}| rZtjj|ƒrZd|krZ|}ytj|ƒ} Wntk r#g} YnXx3| D](}|j|ƒ} | dkr+d}Pq+Wq}|r}d|kr}d||<|||fVq}WdS)NrÚ__init__Fr+Tr7) r2ÚosÚisdirÚinspectÚlistdirÚOSErrorÚsortÚ getmodulenameÚjoin) r5r3r:r@Ú filenamesÚfnÚmodnamer2r6Ú dircontentsÚsubnamerrrÚ_iter_file_finder_modules‹s<%     %     rKc Cs7tjƒ�$tjdtƒtjdƒaWdQRXdS)NÚignoreÚimp)ÚwarningsÚcatch_warningsÚ simplefilterÚPendingDeprecationWarningrÚ import_modulerMrrrrÚ _import_imp·s rSc@s=eZdZddd„Zddd„Zddd„ZdS) r NcCs$tjdtƒtƒ||_dS)Nz5This emulation is deprecated, use 'importlib' instead)rNÚwarnÚDeprecationWarningrSr2)Úselfr2rrrr=Ès zImpImporter.__init__c Cs­|jdƒd}||kr2|jdkr2dS|jdkrJd}ntjj|jƒg}ytj||ƒ\}}}Wntk r™dSYnXt||||ƒS)Nr+r7éÿÿÿÿ)Úsplitr2r>ÚrealpathrMrr-r )rVÚfullnamer2rJÚfileÚfilenameÚetcrrrrÏs   zImpImporter.find_moduler$c cs�|jdks%tjj|jƒ r)dSi}ddl}ytj|jƒ}Wntk rkg}YnX|jƒx|D]}|j|ƒ}|dks}||kr­q}tjj|j|ƒ}d}| rZtjj|ƒrZd|krZ|}ytj|ƒ} Wntk r#g} YnXx3| D](}|j|ƒ} | dkr+d}Pq+Wq}|r}d|kr}d||<|||fVq}WdS)Nrr=Fr+Tr7) r2r>r?r@rArBrCrDrE) rVr3r:r@rFrGrHr2r6rIrJrrrr Þs<%     %     zImpImporter.iter_modules)Ú__name__Ú __module__Ú __qualname__r=rr rrrrr ½s c@s›eZdZdZZdd„Zdd„Zdd„Zdd „Zd d „Z d d „Z ddd„Z ddd„Z dd„Z ddd„ZdS)r NcCs?tjdtƒtƒ||_||_||_||_dS)Nz5This emulation is deprecated, use 'importlib' instead)rNrTrUrSr[r\rZr])rVrZr[r\r]rrrr= s    zImpLoader.__init__c CsM|jƒz%tj||j|j|jƒ}Wd|jrH|jjƒX|S)N)Ú_reopenrMÚ load_moduler[r\r]Úclose)rVrZÚmodrrrrbs  % zImpLoader.load_modulec Cs't|dƒ�}|jƒSWdQRXdS)NÚrb)Úopenr)rVÚpathnamer[rrrr szImpLoader.get_datacCsz|jrv|jjrv|jd}|tjkrIt|jdƒ|_n-|tjtjfkrvt|jdƒ|_dS)NéÚrre) r[Úclosedr]rMÚ PY_SOURCErfr\Ú PY_COMPILEDÚ C_EXTENSION)rVÚmod_typerrrra$s  zImpLoader._reopencCsD|dkr|j}n(||jkr@td|j|fƒ‚|S)Nz,Loader for module %s cannot handle module %s)rZr-)rVrZrrrÚ _fix_name,s   zImpLoader._fix_namecCs#|j|ƒ}|jdtjkS)Nrh)ror]rMÚ PKG_DIRECTORY)rVrZrrrÚ is_package4szImpLoader.is_packagec CsÒ|j|ƒ}|jdkrË|jd}|tjkrd|j|ƒ}t||jdƒ|_ng|tjkr§|j ƒzt |j ƒ|_Wd|j j ƒXn$|tj krË|jƒjƒ|_|jS)NrhÚexec)roÚcoder]rMrkÚ get_sourceÚcompiler\rlrar r[rcrpÚ _get_delegateÚget_code)rVrZrnÚsourcerrrrw8s  zImpLoader.get_codec Csÿ|j|ƒ}|jdkrø|jd}|tjkrn|jƒz|jjƒ|_Wd|jjƒXnŠ|tj krÔt j j |j dd…ƒrøt|j dd…dƒ�}|jƒ|_WdQRXn$|tjkrø|jƒjƒ|_|jS)Nrhr7rirWrW)rorxr]rMrkrar[rrcrlr>r2Úexistsr\rfrprvrt)rVrZrnÚfrrrrtIs  zImpLoader.get_sourcecCs%t|jƒ}t|dƒ}|jS)Nr=)r r\rr)rVrÚspecrrrrv[szImpLoader._get_delegatecCsd|j|ƒ}|jd}|tjkr;|jƒjƒS|tjtjtjfkr`|j SdS)Nrh) ror]rMrprvÚ get_filenamerkrlrmr\)rVrZrnrrrr|`s zImpLoader.get_filename)r^r_r`rsrxr=rbr rarorqrwrtrvr|rrrrr s       )Ú zipimporterc csDttj|jƒ}|j}t|ƒ}i}ddl}x|D]ø}|j|ƒs\qD||d…jt j ƒ}t|ƒdkrÎ|djdƒrÎ|d|krÎd||d<||ddfVt|ƒdkrãqD|j |dƒ}|dkrqD|rDd|krD||krDd||<||dfVqDWdS) Nrrhr7z __init__.pyTr=r+F) ÚsortedÚ zipimportÚ_zip_directory_cacheÚarchiver3Úlenr@Ú startswithrXr>ÚseprD) r5r3ÚdirlistZ_prefixZplenr:r@rGrHrrrÚiter_zipimport_modulesns*    %  r†cCs}ytj|}Wnetk rxxPtjD]?}y$||ƒ}tjj||ƒPWq+tk riYq+Xq+Wd}YnX|S)N)r0Úpath_importer_cacheÚKeyErrorÚ path_hooksÚ setdefaultr-)Z path_itemr5Ú path_hookrrrr�s      ccs²|jdƒr*dj|ƒ}t|ƒ‚d|kr}|jdƒd}tj|ƒ}t|ddƒ}|dkr’dSntjEdHtj }x|D]}t |ƒVq™WdS)Nr+z'Relative module name {!r} not supportedrr() rƒÚformatr-Ú rpartitionrrRr/r0Ú meta_pathr2r)rZÚmsgZpkg_nameZpkgr2Úitemrrrr¨s       cCs›|tjkr,tj|}|dkr,dSt|tƒr‹|}t|ddƒ}|dk rc|St|ddƒdkrdS|j}n|}t|ƒS)NÚ __loader__Ú__spec__)r0r1Ú isinstancerr/r^r)Zmodule_or_nameÚmodulerrZrrrrÅs    cCsµ|jdƒr*dj|ƒ}t|ƒ‚ytjj|ƒ}Wn[ttttfk r�}z/d}t|j|t |ƒ|ƒƒ|‚WYdd}~XnX|dk r±|j SdS)Nr+z'Relative module name {!r} not supportedz,Error while finding loader for {!r} ({}: {})) rƒrŒr-rrrrÚ TypeErrorÚ ValueErrorÚtyper)rZr�r{ÚexrrrrÝs 7cCs&t|tƒs|S|d}|dd…}|jdƒ\}}}|r�ytj|j}WqŠttfk r}|SYqŠXn tj}x•|D]�}t|t ƒs©q‘t |ƒ}|dk rQg} t |dƒr|j |ƒ} | dk r'| j pýg} n$t |dƒr'|j|ƒ\}} x'| D]} | |kr.|j| ƒq.Wtjj||ƒ} tjj| ƒr‘yt| ƒ} Wn?tk rÉ}ztjjd| |fƒWYdd}~Xq‘X| �KxC| D];}|jdƒ}| sØ|jdƒrqØ|j|ƒqØWWdQRXq‘W|S)Nz.pkgr+rrzCan't open %s: %s Ú ú#)r“Úlistr�r0r1r(rˆrr2Ústrrr<rÚsubmodule_search_locationsrÚappendr>rEÚisfilerfrBÚstderrÚwriteÚrstriprƒ)r2rZ sname_pkgZparent_packageÚ_Z final_nameZ search_pathÚdirrÚportionsr{ZportionZpkgfilerzr�ÚlinerrrròsP!          ! cCsÜtjj|ƒ}|dkr"dS|j}|dksGt|dƒ rKdStjj|ƒpltjj |ƒ}|dks‹t|dƒ r�dS|j dƒ}|j dt j j|jƒƒt j j|Œ}|j|ƒS)Nr Ú__file__ú/r)rrrrr<r0r1ÚgetÚ _bootstrapÚ_loadrXÚinsertr>r2Údirnamer§rEr )ÚpackageZresourcer{rrdÚpartsZ resource_namerrrr Ps  )#Ú functoolsrZ simplegenericrÚimportlib.utilZimportlib.machineryr>Zos.pathr0ÚtypesrrNÚ__all__rr rr r9rKÚregisterÚ machineryÚ FileFinderrSr r rr}r†r-rrrrrr rrrrÚsH           9( Jc      ^