???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d@%                  	   @   s  d dl Z d dlZddlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ dddddddddg	Zee ef Z!ee e j"f Z#edddZ$e dddZ%eeej& dddZ'dd  Z(e!e#ed!d"dZ)d-e!e#e e ed%d&dZ*e!e#e+d!d'dZ,d.e!e#e e e d%d(dZ-ee!e#ee d!d)dZ.e!e e/d*d+dZ0e!ee  dd,dZ1dS )/    N   )abc)contextmanagersuppress)import_module)ResourceLoader)BytesIOTextIOWrapper)Path)
ModuleType)IterableIteratorOptionalSetUnion)cast)BinaryIOTextIO)ZipImportErrorPackageResourcecontentsis_resourceopen_binary	open_textpathread_binary	read_text)returnc                 C   s\   t | dr0| jjd kr*td| jjqX| S n(t| }|jjd krTtd| n|S d S )N__spec__z{!r} is not a package)hasattrr   submodule_search_locations	TypeErrorformatnamer   )packagemodule r'   +/usr/lib64/python3.8/importlib/resources.py_get_package"   s    
r)   c                 C   s,   t j| \}}|r$td| n|S d S )Nz{!r} must be only a file name)osr   split
ValueErrorr#   )r   parent	file_namer'   r'   r(   _normalize_path6   s    r/   )r%   r   c                 C   s,   | j }t|jdr(ttj|j|jS d S )Nget_resource_reader)r   r    loaderr   resources_abcResourceReaderr0   r$   )r%   specr'   r'   r(   _get_resource_readerB   s    r5   c                 C   s&   | j jd ks| j js"td| d S )NzPackage has no location )r   originhas_locationFileNotFoundError)r%   r'   r'   r(   _check_locationP   s    r9   )r%   resourcer   c           
      C   s   t |}t| } t| }|d k	r*||S t|  tj| jj	}tj
|}tj||}zt|ddW S  tk
r   tt| jj}d }t| jjdrtt ||}W 5 Q R X |d kr| jj}d||}	t|	nt| Y S Y nX d S )Nrb)modeget_data{!r} resource not found in {!r})r/   r)   r5   open_resourcer9   r*   r   abspathr   r6   dirnamejoinopenOSErrorr   r   r1   r    r   r=   r$   r#   r8   r   )
r%   r:   readerabsolute_package_pathpackage_path	full_pathr1   datapackage_namemessager'   r'   r(   r   U   s2    

 
utf-8strict)r%   r:   encodingerrorsr   c                 C   s
  t |}t| } t| }|d k	r2t||||S t|  tj| j	j
}tj|}tj||}zt|d||dW S  tk
r   tt| j	j}d }	t| j	jdrtt ||}	W 5 Q R X |	d kr| j	j}
d||
}t|ntt|	|| Y S Y nX d S )Nr)r<   rN   rO   r=   r>   )r/   r)   r5   r	   r?   r9   r*   r   r@   r   r6   rA   rB   rC   rD   r   r   r1   r    r   r=   r$   r#   r8   r   )r%   r:   rN   rO   rE   rF   rG   rH   r1   rI   rJ   rK   r'   r'   r(   r   t   s2    
 
c              
   C   s:   t |}t| } t| |}| W  5 Q R  S Q R X d S N)r/   r)   r   read)r%   r:   fpr'   r'   r(   r      s    c              
   C   s>   t |}t| } t| |||}| W  5 Q R  S Q R X d S rQ   )r/   r)   r   rR   )r%   r:   rN   rO   rS   r'   r'   r(   r      s    	c           	      c   s  t |}t| } t| }|d k	rNzt||V  W d S  tk
rJ   Y qVX nt|  d }| jjd k	r|t| jjj	}|| }|d k	r|
 r|V  nxt| |}| }W 5 Q R X t \}}z$t|| t| t|V  W 5 zt| W n tk
r   Y nX X d S rQ   )r/   r)   r5   r
   resource_pathr8   r9   r   r6   r-   existsr   rR   tempfileZmkstempr*   removewriteclose)	r%   r:   rE   Z	file_pathpackage_directoryrS   rI   fdZraw_pathr'   r'   r(   r      s6    

)r%   r$   r   c              	   C   s|   t | } t| t| }|d k	r*||S ztt| }W n ttfk
rT   Y dS X ||krbdS t| j	j
j| }| S )NF)r)   r/   r5   r   setr   NotADirectoryErrorr8   r
   r   r6   r-   is_file)r%   r$   rE   Zpackage_contentsr   r'   r'   r(   r      s    
c                 C   sT   t | } t| }|d k	r | S | jjd ks4| jjs8dS t| jjj}t	|S d S )Nr'   )
r)   r5   r   r   r6   r7   r
   r-   r*   listdir)r%   rE   rZ   r'   r'   r(   r      s    )rL   rM   )rL   rM   )2r*   rV    r   r2   
contextlibr   r   	importlibr   importlib.abcr   ior   r	   pathlibr
   typesr   typingr   r   r   r   r   r   Z	typing.ior   r   Z	zipimportr   __all__strr   PathLiker   r)   r/   r3   r5   r9   r   r   bytesr   r   r   boolr   r   r'   r'   r'   r(   <module>   sh    !   "
   .