o
    ¯g   ã                   @   s¾   d dl Z d dlZddlmZ g d¢Zddd„Zddd	„Zdd
d„Zzd dlm	Z	 W n e
y6   dd„ Z	Y nw dd„ Zz
eefZd dlZW n eyT   eZd dlZY nw dd„ Zdd„ ZdS )é    Né   )ÚVerificationError)ÚsourcesÚinclude_dirsÚlibrary_dirsÚextra_objectsÚdepends© c                 K   sB   ddl m} | g}|D ]}| tj |¡¡ q|d||dœ|¤ŽS )Nr   )Ú	Extension)Únamer   r	   )Úcffi._shimmed_dist_utilsr
   ÚappendÚosÚpathÚnormpath)ZsrcfilenameÚmodnamer   Úkwdsr
   Z
allsourcesÚsrcr	   r	   úW/home/www/bk.finsightngr.online/venv20/lib/python3.10/site-packages/cffi/ffiplatform.pyÚget_extension   s
   r   c              
   C   s†   t j ¡ }z&t| |||ƒ}t j |¡}W | ¡ D ]\}}t j |¡|kr)|t j|< q|S | ¡ D ]\}}t j |¡|krA|t j|< q0w )z-Compile a C extension module using distutils.)r   ÚenvironÚcopyÚ_buildr   ÚabspathÚitemsÚget)ÚtmpdirÚextÚcompiler_verboseÚdebugZsaved_environZoutputfilenameÚkeyÚvaluer	   r	   r   Úcompile   s   

€ý
€þr"   c              
   C   sø   ddl m}m}m}m}m} |d|giƒ}	|	 ¡  |	 d¡}
|d u r&tj	j
}d|f|
d< d|
d< d| f|
d	< d| f|
d
< z'|dƒpBd}z||ƒ |	 d¡ |	 d¡}| ¡ \}W ||ƒ W |S ||ƒ w  ||fy{ } z
td|jj|f ƒ‚d }~ww )Nr   )ÚDistributionÚCompileErrorÚ	LinkErrorÚset_thresholdÚset_verbosityÚext_modulesÚ	build_extÚffiplatformr   )r*   TÚforceÚ	build_libÚ
build_tempz%s: %s)r   r#   r$   r%   r&   r'   Úparse_config_filesÚget_option_dictÚsysÚflagsr   Úrun_commandÚget_command_objÚget_outputsr   Ú	__class__Ú__name__)r   r   r   r   r#   r$   r%   r&   r'   ÚdistÚoptionsZ	old_levelÚcmd_objZsonameÚer	   r	   r   r      s0   




ü€ÿr   )Úsamefilec                 C   s   t j | ¡t j |¡kS ©N)r   r   r   )Úf1Úf2r	   r	   r   r;   =   s   r;   c                 C   s„   t j | ¡s| S | }g }	 |}t j |¡\}}||ks|s| S | |¡ zt|t jƒr6| ¡  t jj|Ž W S W n	 t	y@   Y nw qr<   )
r   r   ÚisabsÚsplitr   r;   ÚcurdirÚreverseÚjoinÚOSError)r   ÚdirÚnamesZprevdirr   r	   r	   r   Úmaybe_relative_path@   s&   
þÿörG   c                 C   sÖ   t | tƒr| dt| ƒ| f ¡ d S t | tƒr9t|  ¡ ƒ}| dt|ƒ ¡ |D ]}t||ƒ t| | |ƒ q(d S t | tt	fƒrU| dt| ƒ ¡ | D ]}t||ƒ qKd S t | t
ƒrd| d| f ¡ d S td| f ƒ‚)Nz%ds%sz%ddz%dlz%diz7the keywords to verify() contains unsupported object %r)Ú
isinstanceÚstrÚwriteÚlenÚdictÚsortedÚkeysÚ_flattenÚlistÚtupleÚint_or_longÚ	TypeError)ÚxÚfrN   r    r!   r	   r	   r   rO   [   s&   


þÿ
ÿrO   c                 C   s   t  ¡ }t| |ƒ | ¡ S r<   )Ú	cStringIOÚStringIOrO   Úgetvalue)rT   rU   r	   r	   r   Úflattenn   s   
rY   )r	   )r   N)r0   r   Úerrorr   ZLIST_OF_FILE_NAMESr   r"   r   Úos.pathr;   ÚImportErrorrG   ÚintÚlongrR   rV   Ú	NameErrorÚiorO   rY   r	   r	   r	   r   Ú<module>   s*    


ÿþ