a
    [Xh                      @   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
yl   dd Z	Y n0 dd ZzeefZd dlZW n ey   eZd dlZY n0 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|f ||d|S )Nr   )	Extension)namer   )cffi._shimmed_dist_utilsr
   appendospathnormpath)Zsrcfilenamemodnamer   kwdsr
   Z
allsourcessrcr	   r	   U/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/cffi/ffiplatform.pyget_extension   s
    r   c              
   C   s   t j }zJt| |||}t j|}W | D ]"\}}t j||kr0|t j|< q0n.| D ]"\}}t j||kr^|t j|< q^0 |S )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 rLtj	j
}d|f|
d< d|
d< d| f|
d	< d| f|
d
< zN|dpd}z2|| |	d |	d}| \}W || n
|| 0 W n> ||fy } z td|jj|f W Y d }~n
d }~0 0 |S )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      s*    


*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s8|s<| S || z&t|t jrj|  t jj| W S W q t	y~   Y q0 qd S 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  nt | trnt|  }|dt|  |D ]}t|| t| | | qNn`t | tt	fr|dt|   | D ]}t|| qn*t | t
r|d| f  ntd| f d S )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)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$   


