a
    Lªf  ã                   @   sF   d dl mZ d dlmZ d
dd„ZG dd„ deƒZG dd	„ d	eƒZdS )é    )ÚCommand)ÚlogNc                 C   sF   | rd S | d u rg } |   d¡ ddlm} dd l}|jj}||ƒ d S )Né   r   )Úshow_fcompilers)ÚappendZnumpy.distutils.fcompilerr   Údistutils.coreÚcoreÚ_setup_distribution)Ú_cacher   Ú	distutilsÚdist© r   ú`/var/www/ai-form-bot/venv/lib/python3.9/site-packages/numpy/distutils/command/config_compiler.pyÚshow_fortran_compilers   s    
r   c                   @   sJ   e Zd ZdZdZg d¢ZdddefgZg d¢Zdd	„ Z	d
d„ Z
dd„ ZdS )Ú	config_fcz” Distutils command to hold user specified options
    to Fortran compilers.

    config_fc command is used by the FCompiler.customize() method.
    z2specify Fortran 77/Fortran 90 compiler information)
)z
fcompiler=Nzspecify Fortran compiler type)zf77exec=Nzspecify F77 compiler command)zf90exec=Nzspecify F90 compiler command)z	f77flags=Nzspecify F77 compiler flags)z	f90flags=Nzspecify F90 compiler flags)zopt=Nzspecify optimization flags)zarch=Nz0specify architecture specific optimization flags)ÚdebugÚgz"compile with debugging information)ÚnooptNzcompile without optimization)ÚnoarchNz+compile without arch-dependent optimizationzhelp-fcompilerNz list available Fortran compilers)r   r   r   c                 C   s@   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d S ©N)
Ú	fcompilerZf77execZf90execZf77flagsZf90flagsÚoptÚarchr   r   r   ©Úselfr   r   r   Úinitialize_options/   s    zconfig_fc.initialize_optionsc                 C   sè   t  d¡ |  d¡}|  d¡}|  d¡}|  d¡}| ||||g}dD ]ž}g }|D ]8}t||ƒ}	|	d urPt|	tƒsv|	j}	|	|vrP| |	¡ qP|s”d }
n|d }
t|ƒdkrºt  	d	||f ¡ |
rD|D ]}t||ƒd u rÂt
|||
ƒ qÂqDd S )
NzTunifing config_fc, config, build_clib, build_ext, build commands --fcompiler optionsÚ
build_clibÚ	build_extÚconfigÚbuild)r   r   r   úJ  commands have different --%s options: %s, using first in list as default©r   ÚinfoÚget_finalized_commandÚgetattrÚ
isinstanceÚstrÚcompiler_typer   ÚlenÚwarnÚsetattr©r   r   r   r   r   Zcmd_listÚaÚlÚcÚvZv1r   r   r   Úfinalize_options;   s,    






ÿzconfig_fc.finalize_optionsc                 C   s   d S r   r   r   r   r   r   ÚrunR   s    zconfig_fc.run)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚdescriptionÚuser_optionsr   Úhelp_optionsÚboolean_optionsr   r0   r1   r   r   r   r   r      s   ÿÿr   c                   @   s2   e Zd ZdZdZdgZdd„ Zdd„ Zdd	„ Zd
S )Ú	config_cczN Distutils command to hold user specified options
    to C/C++ compilers.
    z"specify C/C++ compiler information)z	compiler=Nzspecify C/C++ compiler typec                 C   s
   d | _ d S r   ©Úcompilerr   r   r   r   r   a   s    zconfig_cc.initialize_optionsc                 C   sè   t  d¡ |  d¡}|  d¡}|  d¡}|  d¡}| ||||g}dD ]ž}g }|D ]8}t||ƒ}	|	d urPt|	tƒsv|	j}	|	|vrP| |	¡ qP|s”d }
n|d }
t|ƒdkrºt  	d	||f ¡ |
rD|D ]}t||ƒd u rÂt
|||
ƒ qÂqDd S )
NzSunifing config_cc, config, build_clib, build_ext, build commands --compiler optionsr   r   r   r   r;   r   r   r    r!   r+   r   r   r   r0   d   s.    






ÿzconfig_cc.finalize_optionsc                 C   s   d S r   r   r   r   r   r   r1   |   s    zconfig_cc.runN)	r2   r3   r4   r5   r6   r7   r   r0   r1   r   r   r   r   r:   V   s   ÿr:   )N)r   r   Znumpy.distutilsr   r   r   r:   r   r   r   r   Ú<module>   s   
D