a
    còf�  ã                   @   s°   zd dl T W nž eyª   d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlZd dlZd dlZd ZdZdZdZd	Zd
ZdZdZdZdZdd„ Zddd„Zddd„ZY n0 dS )é    )Ú*)Úacquire_lockÚrelease_lockÚ
is_builtinÚ	is_frozen)Ú_load)Ú	machineryNé   é   é   é   é   é   é   é   é	   c                  C   s<   dd„ t jD ƒ} dd„ t jD ƒ}dd„ t jD ƒ}| | | S )Nc                 S   s   g | ]}|d t f‘qS ©Úrb)ÚC_EXTENSION©Ú.0Ús© r   úP/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/cffi/_imp_emulation.pyÚ
<listcomp>!   s   ÿz get_suffixes.<locals>.<listcomp>c                 S   s   g | ]}|d t f‘qS )Úr)Ú	PY_SOURCEr   r   r   r   r   #   ó    c                 S   s   g | ]}|d t f‘qS r   )ÚPY_COMPILEDr   r   r   r   r   $   r   )r   ÚEXTENSION_SUFFIXESÚSOURCE_SUFFIXESÚBYTECODE_SUFFIXES)Ú
extensionsÚsourceÚbytecoder   r   r   Úget_suffixes    s    ÿr%   c                 C   sœ  t | tƒstd t| ƒ¡ƒ‚n$t |td ƒtfƒsBtd t|ƒ¡ƒ‚|d u r€t| ƒrbd d ddtffS t	| ƒrzd d ddt
ffS tj}|D ]¢}tj || ¡}dtjd fD ]>}d| }tj ||¡}tj |¡r¤d |ddtff    S q¤tƒ D ]2\}}}| | }	tj ||	¡}tj |¡rê �q qêq„ �q4q„t| | d�‚d }
d|v�r~t|d	ƒ� }t |j¡d }
W d   ƒ n1 �st0    Y  t|||
d
�}|||||ffS )Nz'name' must be a str, not {}z%'path' must be None or a list, not {}Ú z.pyr   Ú__init__)ÚnameÚbr   )Úencoding)Ú
isinstanceÚstrÚ	TypeErrorÚformatÚtypeÚlistÚRuntimeErrorr   Ú	C_BUILTINr   Ú	PY_FROZENÚsysÚpathÚosÚjoinr   r!   ÚisfileÚPKG_DIRECTORYr%   ÚImportErrorÚopenÚtokenizeÚdetect_encodingÚreadline)r(   r5   ÚentryÚpackage_directoryÚsuffixZpackage_file_nameÚ	file_pathÚmodeÚtype_Ú	file_namer*   Úfiler   r   r   Úfind_module'   sB    
ÿ
0rG   c                 C   s$   t  | |¡}t j| ||d�}t|ƒS )N)r(   ÚloaderÚorigin)r   ÚExtensionFileLoaderÚ
ModuleSpecr   )r(   r5   rF   rH   Úspecr   r   r   Úload_dynamicP   s    rM   )N)N)Úimpr:   Ú_impr   r   r   r   Zimportlib._bootstrapr   Ú	importlibr   r6   r4   r<   ZSEARCH_ERRORr   r   r   ZPY_RESOURCEr9   r2   r3   ZPY_CODERESOURCEZIMP_HOOKr%   rG   rM   r   r   r   r   Ú<module>   s*   
)