
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aüS  ã                   @   st  d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dl	Zd dl
Z
d dlmZ d dlZddddd	d
ddddddgZeddƒZde_dd„ Zdd„ Zd*dd	„Zd+dd
„Zed,dd„ƒZd-dd„Ze ejje¡ dd„ ZG dd„ dƒZG d d„ dƒZz.d dlZd d!lmZ d.d"d#„Ze ee¡ W n e k
�r<   Y nX d$d„ Z!d/d%d„Z"d&d„ Z#d'd„ Z$d(d„ Z%d)d„ Z&dS )0é    )Ú
namedtuple)ÚsingledispatchN)Ú
ModuleTypeÚget_importerÚiter_importersÚ
get_loaderÚfind_loaderÚwalk_packagesÚiter_modulesÚget_dataÚImpImporterÚ	ImpLoaderÚ	read_codeÚextend_pathÚ
ModuleInfozmodule_finder name ispkgz.A namedtuple with minimal info about a module.c                 C   sR   z
| j }W n: tk
rD   |  |¡}|d kr2Y d S tj ||¡ Y S X ||ƒS d S ©N)Ú	find_specÚAttributeErrorÚfind_moduleÚ	importlibÚutilÚspec_from_loader)ÚfinderÚnamer   Úloader© r   ú,/opt/alt/python38/lib64/python3.8/pkgutil.pyÚ	_get_spec   s    

r   c                 C   s6   dd l }|  d¡}|tjjkr"d S |  d¡ | | ¡S )Nr   é   é   )ÚmarshalÚreadr   r   ÚMAGIC_NUMBERÚload)Ústreamr    Úmagicr   r   r   r   (   s    

Ú c              	   #   sÌ   i fdd„‰ t | |ƒD ]°}|V  |jrzt|jƒ W nN tk
rZ   |d k	rV||jƒ Y q tk
r‚   |d k	r|||jƒ n‚ Y qX ttj|j dd ƒpšg } ‡ fdd„| D ƒ} t	| |jd |ƒE d H  qd S )Nc                 S   s   | |krdS d|| < d S )NTr   )ÚpÚmr   r   r   ÚseenR   s    zwalk_packages.<locals>.seenÚ__path__c                    s   g | ]}ˆ |ƒs|‘qS r   r   )Ú.0r'   ©r)   r   r   Ú
<listcomp>i   s      z!walk_packages.<locals>.<listcomp>Ú.)
r
   ÚispkgÚ
__import__r   ÚImportErrorÚ	ExceptionÚgetattrÚsysÚmodulesr	   )ÚpathÚprefixÚonerrorÚinfor   r,   r   r	   5   s     c                 c   sr   | d krt ƒ }nt| tƒr$tdƒ‚n
tt| ƒ}i }|D ]6}t||ƒD ]&\}}||krDd||< t|||ƒV  qDq6d S )Nz9path must be None or list of paths to look for modules iné   )r   Ú
isinstanceÚstrÚ
ValueErrorÚmapr   Úiter_importer_modulesr   )r6   r7   Z	importersÚyieldedÚir   r/   r   r   r   r
   n   s    



c                 C   s   t | dƒsg S |  |¡S )Nr
   )Úhasattrr
   )Úimporterr7   r   r   r   r?   ˆ   s    
r?   c              	   c   s$  | j d kstj  | j ¡sd S i }dd l}zt | j ¡}W n tk
rP   g }Y nX | ¡  |D ]À}| |¡}|dks^||kr~q^tj  | j |¡}d}|sütj  |¡rüd|krü|}zt |¡}	W n tk
rÔ   g }	Y nX |	D ]}| |¡}
|
dkrÚd} qüqÚq^|r^d|kr^d||< || |fV  q^d S ©Nr   Ú__init__Fr.   Tr:   ©	r6   ÚosÚisdirÚinspectÚlistdirÚOSErrorÚsortÚgetmodulenameÚjoin)rC   r7   r@   rI   Ú	filenamesÚfnÚmodnamer6   r/   ÚdircontentsÚsubnamer   r   r   Ú_iter_file_finder_modules�   s<    



rT   c                	   C   s.   t  ¡ � t  dt¡ t d¡aW 5 Q R X d S )NÚignoreÚimp)ÚwarningsÚcatch_warningsÚsimplefilterÚDeprecationWarningr   Úimport_modulerV   r   r   r   r   Ú_import_imp¼   s    
r\   c                   @   s*   e Zd Zd	dd„Zd
dd„Zddd„ZdS )r   Nc                 C   s   t  dt¡ tƒ  || _d S ©Nz5This emulation is deprecated, use 'importlib' instead)rW   ÚwarnrZ   r\   r6   )Úselfr6   r   r   r   rE   Í   s
    ÿzImpImporter.__init__c                 C   s€   |  d¡d }||kr$| jd kr$d S | jd kr4d }ntj | j¡g}zt ||¡\}}}W n tk
rp   Y d S X t||||ƒS )Nr.   éÿÿÿÿ)Úsplitr6   rG   ÚrealpathrV   r   r1   r   )r_   Úfullnamer6   rS   ÚfileÚfilenameÚetcr   r   r   r   Ô   s    
zImpImporter.find_moduler&   c              	   c   s$  | j d kstj  | j ¡sd S i }dd l}zt | j ¡}W n tk
rP   g }Y nX | ¡  |D ]À}| |¡}|dks^||kr~q^tj  | j |¡}d}|sütj  |¡rüd|krü|}zt |¡}	W n tk
rÔ   g }	Y nX |	D ]}| |¡}
|
dkrÚd} qüqÚq^|r^d|kr^d||< || |fV  q^d S rD   rF   )r_   r7   r@   rI   rO   rP   rQ   r6   r/   rR   rS   r   r   r   r
   ã   s<    



zImpImporter.iter_modules)N)N)r&   )Ú__name__Ú
__module__Ú__qualname__rE   r   r
   r   r   r   r   r   Â   s   

c                   @   sj   e Zd Zd ZZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
ddd„Zddd„Zdd„ Zddd„ZdS )r   Nc                 C   s.   t  dt¡ tƒ  || _|| _|| _|| _d S r]   )rW   r^   rZ   r\   rd   re   rc   rf   )r_   rc   rd   re   rf   r   r   r   rE     s    ÿzImpLoader.__init__c                 C   s:   |   ¡  zt || j| j| j¡}W 5 | jr4| j ¡  X |S r   )Ú_reopenrd   ÚcloserV   Úload_modulere   rf   )r_   rc   Úmodr   r   r   rl     s    zImpLoader.load_modulec              
   C   s*   t |dƒ�}| ¡ W  5 Q R £ S Q R X d S )NÚrb)Úopenr!   )r_   Úpathnamerd   r   r   r   r   %  s    zImpLoader.get_datac                 C   sT   | j rP| j jrP| jd }|tjkr2t| jdƒ| _ n|tjtjfkrPt| jdƒ| _ d S )Né   Úrrn   )	rd   Úclosedrf   rV   Ú	PY_SOURCEro   re   ÚPY_COMPILEDÚC_EXTENSION)r_   Úmod_typer   r   r   rj   )  s    

zImpLoader._reopenc                 C   s0   |d kr| j }n|| j kr,td| j |f ƒ‚|S )Nz,Loader for module %s cannot handle module %s)rc   r1   ©r_   rc   r   r   r   Ú	_fix_name1  s    
ÿzImpLoader._fix_namec                 C   s   |   |¡}| jd tjkS ©Nrq   )ry   rf   rV   ÚPKG_DIRECTORYrx   r   r   r   Ú
is_package9  s    
zImpLoader.is_packagec                 C   s”   |   |¡}| jd krŽ| jd }|tjkrD|  |¡}t|| jdƒ| _nJ|tjkrv|  	¡  zt| j
ƒ| _W 5 | j
 ¡  X n|tjkrŽ|  ¡  ¡ | _| jS )Nrq   Úexec)ry   Úcoderf   rV   rt   Ú
get_sourceÚcompilere   ru   rj   rd   rk   r   r{   Ú_get_delegateÚget_code)r_   rc   rw   Úsourcer   r   r   r‚   =  s    






zImpLoader.get_codec              	   C   sº   |   |¡}| jd kr´| jd }|tjkrP|  ¡  z| j ¡ | _W 5 | j ¡  X nd|tj	krœt
j | jd d… ¡r´t| jd d… dƒ�}| ¡ | _W 5 Q R X n|tjkr´|  ¡  ¡ | _| jS )Nrq   r`   rr   )ry   rƒ   rf   rV   rt   rj   rd   rk   r!   ru   rG   r6   Úexistsre   ro   r{   r�   r   )r_   rc   rw   Úfr   r   r   r   N  s    





zImpLoader.get_sourcec                 C   s   t | jƒ}t|dƒ}|jS )NrE   )r   re   r   r   )r_   r   Úspecr   r   r   r�   `  s    

zImpLoader._get_delegatec                 C   sH   |   |¡}| jd }|tjkr*|  ¡  ¡ S |tjtjtjfkrD| j	S d S rz   )
ry   rf   rV   r{   r�   Úget_filenamert   ru   rv   re   )r_   rc   rw   r   r   r   r‡   e  s    


zImpLoader.get_filename)N)N)N)rg   rh   ri   r~   rƒ   rE   rl   r   rj   ry   r|   r‚   r   r�   r‡   r   r   r   r   r     s   	

)Úzipimporterc           	      c   sì   t tj| j ƒ}| j}t|ƒ}i }dd l}|D ]¸}| |¡s>q.||d …  t	j
¡}t|ƒdkr–|d  d¡r–|d |kr–d||d < ||d  dfV  t|ƒdkr¤q.| |d ¡}|dkr¼q.|r.d|kr.||kr.d||< || dfV  q.d S )	Nr   rq   r:   z__init__.pyTrE   r.   F)ÚsortedÚ	zipimportÚ_zip_directory_cacheÚarchiver7   ÚlenrI   Ú
startswithra   rG   ÚseprM   )	rC   r7   ZdirlistÚ_prefixZplenr@   rI   rP   rQ   r   r   r   Úiter_zipimport_moduless  s*    
r‘   c                 C   sx   t  | ¡} ztj|  }W nZ tk
rr   tjD ]:}z || ƒ}tj | |¡ W  qnW q. tk
rf   Y q.X q.d }Y nX |S r   )rG   Úfsdecoder4   Úpath_importer_cacheÚKeyErrorÚ
path_hooksÚ
setdefaultr1   )Z	path_itemrC   Ú	path_hookr   r   r   r   •  s    	



c                 c   s€   |   d¡rd | ¡}t|ƒ‚d| krV|  d¡d }t |¡}t|dd ƒ}|d krhd S ntjE d H  tj	}|D ]}t
|ƒV  qld S )Nr.   ú'Relative module name {!r} not supportedr   r*   )rŽ   Úformatr1   Ú
rpartitionr   r[   r3   r4   Ú	meta_pathr6   r   )rc   ÚmsgZpkg_nameZpkgr6   Úitemr   r   r   r   ®  s    


c                 C   sn   | t jkr t j|  } | d kr d S t| tƒrb| }t|dd ƒ}|d k	rF|S t|dd ƒd krZd S |j}n| }t|ƒS )NÚ
__loader__Ú__spec__)r4   r5   r;   r   r3   rg   r   )Zmodule_or_nameÚmoduler   rc   r   r   r   r   Ë  s    


c                 C   s†   |   d¡rd | ¡}t|ƒ‚ztj | ¡}W nF ttttfk
rr } z d}t| | t	|ƒ|¡ƒ|‚W 5 d }~X Y nX |d k	r‚|j
S d S )Nr.   r˜   z,Error while finding loader for {!r} ({}: {}))rŽ   r™   r1   r   r   r   r   Ú	TypeErrorr=   Útyper   )rc   rœ   r†   Zexr   r   r   r   ã  s    

*c                 C   sž  t | tƒs| S |d }| d d … } | d¡\}}}|rfztj| j}W ql ttfk
rb   |  Y S X ntj}|D �]&}t |t	ƒs‚qpt
|ƒ}|d k	ròg }	t|dƒr¾| |¡}
|
d k	rÖ|
jpºg }	nt|dƒrÖ| |¡\}}	|	D ]}|| krÚ|  |¡ qÚtj ||¡}tj |¡rpzt|ƒ}W n8 tk
�rP } ztj d||f ¡ W 5 d }~X Y qpX |�< |D ]0}| d¡}|�r\| d¡�r€�q\|  |¡ �q\W 5 Q R X qp| S )Nz.pkgr.   r   r   zCan't open %s: %s
Ú
ú#)r;   Úlistrš   r4   r5   r*   r”   r   r6   r<   r   rB   r   Úsubmodule_search_locationsr   ÚappendrG   rN   Úisfilero   rK   ÚstderrÚwriteÚrstriprŽ   )r6   r   Z	sname_pkgZparent_packageÚ_Z
final_nameZsearch_pathÚdirr   Úportionsr†   ZportionZpkgfiler…   rœ   Úliner   r   r   r   ø  sR    !





ÿ
c                 C   s˜   t j | ¡}|d krd S |j}|d ks0t|dƒs4d S tj | ¡pJt j 	|¡}|d ks^t|dƒsbd S | 
d¡}| dtj |j¡¡ tjj|Ž }| |¡S )Nr   Ú__file__ú/r   )r   r   r   r   rB   r4   r5   ÚgetÚ
_bootstrapÚ_loadra   ÚinsertrG   r6   Údirnamer°   rN   r   )ÚpackageÚresourcer†   r   rm   ÚpartsZresource_namer   r   r   r   V  s    
ÿ
)Nr&   N)Nr&   )r&   )r&   )r&   )r&   )'Úcollectionsr   Ú	functoolsr   Zsimplegenericr   Úimportlib.utilÚimportlib.machineryrG   Zos.pathr4   Útypesr   rW   Ú__all__r   Ú__doc__r   r   r	   r
   r?   rT   ÚregisterÚ	machineryÚ
FileFinderr\   r   r   rŠ   rˆ   r‘   r1   r   r   r   r   r   r   r   r   r   r   Ú<module>   sf           ü

9

( ÿJc

^