o
    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	   R/var/www/html/optinet_system/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*    


