
    dh              	          d dl Z d dlmZmZ edk    oedu ZerLej                             ej         ej	         ej
        e          d                               d dlmZ nd dlmZ  eddddddd	          Z G d
 de          Z G d de          Z G d de j                  Zer e j                     dS dS )    N)syspath__main__z..)CCompilerOpt)gccclangicciccwmsvc)r   r   )r   )x86x64ppc64ppc64learmhfaarch64narchc                   @    e Zd ZdZd Zd Zd Zeddd            ZdS )	FakeCCompilerOpt)archcompiler
extra_argsc                 ,    t          j        | d fi | d S N)r   __init__)selfargskwargss      j/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/numpy/distutils/tests/test_ccompiler_opt_conf.pyr   zFakeCCompilerOpt.__init__   s#    dD33F33333    c                     |S r    )r   sourcesflagsr   s       r   dist_compilezFakeCCompilerOpt.dist_compile   s    r   c                     t           j        S r   )r   	fake_infor   s    r   	dist_infozFakeCCompilerOpt.dist_info   s    ))r   F)stderrc                     d S r   r!   )r)   r   s     r   dist_logzFakeCCompilerOpt.dist_log   s    r   N)	__name__
__module____qualname__r&   r   r$   r(   staticmethodr+   r!   r   r   r   r      sl        2I4 4 4  * * *$     \  r   r   c                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
_TestConfFeatureszlA hook to check the sanity of configured features
-   before it called by the abstract class '_Feature'
    c                    | j         }|                                D ]\  }}|                     d|||           t                              |           }|                                D ]\  }}|                     d|||           |S )Nzattribute conf_featureszconf_features_partial())conf_featuresitemstest_featurer   conf_features_partial)r   conf_allfeature_namefeatureconf_partials        r   r6   z'_TestConfFeatures.conf_features_partial&   s    %%-^^%5%5 	 	!L'),   
 (==dCC%1%7%7%9%9 	 	!L')lG    r   c                    d                     ||| j        | j                  }|                                st	          |dz             |                                D ]3\  }}|                     |||           |                     |||           4|                     ||||           | 	                    ||||           | 
                    ||||           d S )NzJduring validate '{}' within feature '{}', march '{}' and compiler '{}'
>> z!feature name must be in uppercase)formatcc_marchcc_nameisupperAssertionErrorr4   test_option_typestest_duplicatestest_implies
test_grouptest_extra_checks)r   log	search_inr8   feature_dict	error_msgoptionvals           r   r5   z_TestConfFeatures.test_feature6   s    0
&lDM4<
@
@ 	
 ##%% 	R -P!PQQQ'--// 	9 	9KFC""9fc:::  FC8888)YlKKK	9lLIIIy)\<PPPPPr   c                    t           t          fdft           fdft          fdft          fdft          t	          d           fdffD ]n\  }}||v }|st          ||          sRd g |R D             }d                    |          }t          |d|d	|d
t	          |          j        dz              |st          |d|z  z             d S )Nimpliesheadersr#   groupdetectextra_checks)disable)interest)implies_detect)autovecc                     g | ]	}|j         
S r!   )r,   ).0ts     r   
<listcomp>z7_TestConfFeatures.test_option_types.<locals>.<listcomp>U   s    7771AJ777r   z or z
expected 'z' type for option 'z' not ''zinvalid option name '%s')	strlistintbooltype
isinstancejoinr@   r,   )r   rI   rJ   rK   tp	availablefound_iterror_tps           r   rA   z#_TestConfFeatures.test_option_typesG   s    4[   Vl#Vm$W)*DJJ.
 	 	MB	 *H c2&& 77"777!;;x00$YYXXvvvtCyy'9'9'9&     	R -G&-P!PQQQ	R 	Rr   c                     |dvrd S t          |t                    r|                                }t          |          t          t	          |                    k    rt          |d|z  z             d S )NrM   z duplicated values in option '%s')ra   r\   splitlensetr@   )r   rI   rJ   rK   s       r   rB   z!_TestConfFeatures.test_duplicates`   sw     
 
 
Fc3 	))++Cs88s3s88}}$$ -ORX-X!XYYY %$r   c                 z   |                     d          d S |                     dd          }|sd S t          |t                    r|                                }||v rt	          |dz             |D ]G}|                     |          }|d|v rt	          |d|z  z             3t	          |d|z  z             d S )NdisabledrN    zfeature implies itselfrS   zimplies disabled feature '%s'zimplies non-exist feature '%s'getra   r\   rh   r@   )r   rI   rG   r8   rH   rN   impl	impl_dicts           r   rC   z_TestConfFeatures.test_impliesk   s    J''3F""9b11 	Fgs## 	&mmooG7"" -E!EFFF 	V 	VD!d++I$	))(5TW[5[)[\\\ -MPT-T!TUUU	V 	Vr   c                 $   |                     d          d S |                     dd          }|sd S t          |t                    r|                                }|D ]2}|                     |          }|rd|v rt	          |d|z  z             d S )Nrl   rP   rm   rS   z8in option 'group', '%s' already exists as a feature namern   )r   rI   rG   r8   rH   rP   frq   s           r   rD   z_TestConfFeatures.test_group   s    J''3F  "-- 	FeS!! 	"KKMME 	 	A!a((I 	Y 6 6 JQN"O   		 	r   c                 $   |                     d          d S |                     dd          }|sd S t          |t                    r|                                }|D ]2}|                     |          }|rd|v rt	          |d|z  z             d S )Nrl   rR   rm   rS   zOin option 'extra_checks', extra test case '%s' already exists as a feature namern   )r   rI   rG   r8   rH   rR   rs   rq   s           r   rE   z#_TestConfFeatures.test_extra_checks   s    J''3F#'';; 	FlC(( 	0'--//L 	 	A!a((I 	Y 6 6 adee"f   		 	r   N)r,   r-   r.   __doc__r6   r5   rA   rB   rC   rD   rE   r!   r   r   r1   r1   !   s            Q Q Q"R R R2	Z 	Z 	ZV V V(  "    r   r1   c                   "    e Zd ZddZd Zd ZdS )TestConfFeaturesrunTestc                 n    t           j                            | |           |                                  d S r   )unittestTestCaser   _setup)r   
methodNames     r   r   zTestConfFeatures.__init__   s,    ""4444r   c                     dt           _        d S )NT)r   conf_nocacher'   s    r   r|   zTestConfFeatures._setup   s    (,%%%r   c                     t                                           D ]'\  }}|D ]}||dft          _        t	                        (d S )Nrm   )arch_compilersr4   r   r&   r1   )r   r   	compilersccs       r   test_featureszTestConfFeatures.test_features   s]    -3355 	$ 	$OD) $ $.2B^ *!####$	$ 	$r   N)rx   )r,   r-   r.   r   r|   r   r!   r   r   rw   rw      sF           - - -$ $ $ $ $r   rw   )rz   osr   r   r,   __package__is_standaloneappendabspathrb   dirname__file__ccompiler_optr   numpy.distutils.ccompiler_optdictr   r   r1   r{   rw   mainr!   r   r   <module>r      s~           J&>;$+> ;HOOLDL<4<+A+A4!H!HIIJJJ*******::::::
1
1  
 
 
 
 
| 
 
 
~ ~ ~ ~ ~( ~ ~ ~@$ $ $ $ $x( $ $ $  HMOOOOO r   