o
    VÌh   ã                   @   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)ÚsrcfilenameÚmodnamer   Úkwdsr
   Ú
allsourcesÚsrcr	   r	   úd/var/www/html/construction_image-detection-poc/venv/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ÚdebugÚsaved_environÚ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ÚoptionsÚ	old_levelÚcmd_objÚsonameÚer	   r	   r   r      s0   




ü€ÿr   )Úsamefilec                 C   s   t j | ¡t j |¡kS ©N)r   r   r   )Úf1Úf2r	   r	   r   rA   =   s   rA   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rB   )
r   r   ÚisabsÚsplitr   rA   ÚcurdirÚreverseÚjoinÚOSError)r   ÚdirÚnamesÚprevdirr   r	   r	   r   Úmaybe_relative_path@   s&   
þÿörN   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ÚfrU   r$   r%   r	   r	   r   rV   [   s&   


þÿ
ÿrV   c                 C   s   t  ¡ }t| |ƒ | ¡ S rB   )Ú	cStringIOÚStringIOrV   Úgetvalue)r[   r\   r	   r	   r   Úflattenn   s   
r`   )r	   )r   N)r4   r   Úerrorr   ÚLIST_OF_FILE_NAMESr   r&   r   Úos.pathrA   ÚImportErrorrN   ÚintÚlongrY   r]   Ú	NameErrorÚiorV   r`   r	   r	   r	   r   Ú<module>   s*    


ÿþ