o
    ÊeG  ã                   @   sd   d dl Z d dlZd dlZd dlmZ d dlmZ G dd„ dƒZeƒ Ze j	 
e¡ e e jd ¡ dS )é    N)Úimport_module)Ú
ModuleSpecc                   @   sL   e Zd ZdZdd„ Zdd„ Zddd„Zd	d
„ Zddd„Zdd„ Z	dd„ Z
dS )Ú	TlzLoaderz< Finds and loads ``tlz`` modules when added to sys.meta_pathc                 C   s   t jh| _d S ©N)ÚtoolzÚpipeÚalways_from_toolz)Úself© r
   ú>D:\Projects\ConvertPro\env\Lib\site-packages\tlz/_build_tlz.pyÚ__init__
   s   
ÿzTlzLoader.__init__c                 C   sŒ   i }|  d¡\}}}zd d||g¡}t|ƒ|d< W n	 ty#   Y nw zd d||g¡}t|ƒ|d< W n	 ty=   Y nw |sDt|ƒ‚|S )NÚ.Ú Úcytoolzr   )Ú	partitionÚjoinr   ÚImportError)r	   ÚfullnameÚrvÚpackageÚdotÚ
submodulesÚmodule_namer
   r
   r   Ú_load_toolz   s"   ÿÿzTlzLoader._load_toolzNc                 C   s    |  d¡\}}}|dkr| S d S ©Nr   Útlz)r   )r	   r   Úpathr   r   r   r
   r
   r   Úfind_module    s   ÿzTlzLoader.find_modulec                 C   s@   |t jv r
t j| S t|| ƒ}|  |¡}|t j|< |  |¡ |S r   )ÚsysÚmodulesr   Úcreate_moduleÚexec_module)r	   r   ÚspecÚmoduler
   r
   r   Úload_module%   s   





zTlzLoader.load_modulec                 C   s&   |  d¡\}}}|dkrt|| ƒS d S r   )r   r   )r	   r   r   Útargetr   r   r   r
   r
   r   Ú	find_spec.   s   
ÿzTlzLoader.find_specc                 C   s   t  |j¡S r   )ÚtypesÚ
ModuleTypeÚname)r	   r"   r
   r
   r   r    3   s   zTlzLoader.create_modulec              	   C   sP  |   |j¡}| d¡p|d }| d¡p|d }|j t |j|j¡¡ |j}|d ur<| d¡\}}}d 	d||g¡|_|j
sC|j
|_
z|j|_W n	 tyR   Y nw |j ¡ D ]M\}}	|j |¡}
zt|
ƒ W n tys   d }
Y nw |
| jv r|
|j|< qXt|	tjƒr¥|	j|jkr¥|	j d¡\}}}d 	d||g¡}t|ƒ}||j|< qXd S )Nr   r   r   r   r   )r   Ú__name__ÚgetÚ__dict__Úupdater   ÚmergeÚ__package__r   r   Ú__doc__Ú__file__ÚAttributeErrorÚitemsÚhashÚ	TypeErrorr   Ú
isinstancer'   r(   r   )r	   r#   Z
toolz_modsZfast_modZslow_modr   r   r   ÚkÚvÚtvr   Ú	submoduler
   r
   r   r!   6   sB   ÿÿ

ÿ
€ñzTlzLoader.exec_moduler   )r*   Ú
__module__Ú__qualname__r0   r   r   r   r$   r&   r    r!   r
   r
   r
   r   r      s    

	r   r   )r   r'   r   Ú	importlibr   Úimportlib.machineryr   r   Z
tlz_loaderÚ	meta_pathÚappendr!   r   r
   r
   r
   r   Ú<module>   s    R