o
    Ö­jU  ã                   @   s�   d Z ddlZddlmZ ddlZddlZddlZddlZG dd„ dejƒZ	G dd„ dejƒZ
ejdd	�d
d„ ƒZej d¡ejjdd„ ƒƒZdS )z¡
Tests which scan for certain occurrences in the code, they may not find
all of these occurrences but should catch almost all. This file was adapted
from NumPy.
é    N)ÚPathc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	ParseCallc                 C   s
   g | _ d S ©N)Úls)Úself© r   ú[/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_warnings.pyÚ__init__   s   
zParseCall.__init__c                 C   s    t j | |¡ | j |j¡ d S r   )ÚastÚNodeVisitorÚgeneric_visitr   ÚappendÚattr©r   Únoder   r   r   Úvisit_Attribute   s   zParseCall.visit_Attributec                 C   s   | j  |j¡ d S r   )r   r   Úidr   r   r   r   Ú
visit_Name   s   zParseCall.visit_NameN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   r   r      s    r   c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )Ú	FindFuncsc                    s    t ƒ  ¡  || _g | _g | _d S r   )Úsuperr	   Ú_FindFuncs__filenameÚbad_filtersÚbad_stacklevels)r   Úfilename©Ú	__class__r   r   r	      s   

zFindFuncs.__init__c                 C   sH  t ƒ }| |j¡ tj | |¡ |jd dks|jd dkr^|jd   tjd˜ r0 } |j	}n   tj
d˜ rF }d dd„ |jD ƒ¡}n  	 td	ƒ‚|d
kr^| j | j› d|j› �¡ |jd dkržt|jƒdkss|jd dkr | jdkrzd S t|jƒdkrƒd S dd„ |jD ƒ}d|vr¢| j | j› d|j› �¡ d S d S d S d S )NéÿÿÿÿÚsimplefilterÚfilterwarningsr   r   Ú c                 s   s"   � | ]}t |tjƒr|jV  qd S r   )Ú
isinstancer
   ÚConstantÚvalue)Ú.0Úxr   r   r   Ú	<genexpr>3   s   € ÿ
ÿz'FindFuncs.visit_Call.<locals>.<genexpr>zunknown ast node typeÚignoreú:Úwarné   éþÿÿÿÚwarningsz_lib/tests/test_warnings.pyé   c                 S   s   h | ]}|j ’qS r   )Úarg)r&   Úkwr   r   r   Ú	<setcomp>G   s    z'FindFuncs.visit_Call.<locals>.<setcomp>Ú
stacklevel)r   ÚvisitÚfuncr
   r   r   r   Úargsr$   r%   Ú	JoinedStrÚjoinÚvaluesÚ
ValueErrorr   r   r   ÚlinenoÚlenÚkeywordsr   )r   r   ÚpÚcÚargtextÚjsr6   r   r   r   Ú
visit_Call%   sB   ÿ

ÿüÿ
ÿô
zFindFuncs.visit_Call)r   r   r   r	   rB   Ú__classcell__r   r   r   r   r      s    r   Úsession)Úscopec               	   C   s    t tjƒj} g }g }|  d¡D ]<}t t|ƒ¡�+}tj	| 
¡ t|ƒd�}t| | ¡ƒ}| |¡ | |j¡ | |j¡ W d   ƒ n1 sFw   Y  q||fS )Nz*.py)r   )r   ÚscipyÚ__file__ÚparentÚrglobÚtokenizeÚopenÚstrr
   ÚparseÚreadr   Úrelative_tor4   Úextendr   r   )Úbaser   r   ÚpathÚfileÚtreeÚfinderr   r   r   Úwarning_callsM   s   
û€rV   é(   c                    sö   | \}}t j dd¡t j dd¡t j dd¡t j dd¡t j dd¡t j dd	¡t j d
d¡t j dd¡t j dd¡t j dd¡t j dd¡t j dd¡t j ddd¡t j dd¡t j d
ddd¡df‰ ‡ fdd„|D ƒ}|rytd d |¡¡ƒ‚d S )NÚdatasetsz_fetchers.pyz__init__.pyÚoptimizez_optimize.pyz_constraints.pyz_nnls.pyÚsignalz
_ltisys.pyÚsparseÚspecialz	_basic.pyÚstatsz_discrete_distns.pyz_continuous_distns.pyz_binned_statistic.pyz_stats_py.pyÚtestsztest_axis_nan_policy.pyÚ_libz_util.pyÚlinalgÚ_dsolvezlinsolve.pyzconftest.pyc                    s"   g | ]}|  d ¡d ˆ vr|‘qS )r*   r   )Úsplit)r&   Úitem©Úallowed_filtersr   r   Ú
<listcomp>€   s    ÿz.test_warning_calls_filters.<locals>.<listcomp>zxwarning ignore filter should not be used, instead, use
numpy.testing.suppress_warnings (in tests only);
found in:
    {}z
    )ÚosrR   r8   ÚAssertionErrorÚformat)rV   r   r   r   rd   r   Útest_warning_calls_filtersb   s6   
ðÿýÿrj   )Ú__doc__rg   Úpathlibr   r
   rJ   rF   Úpytestr   r   r   ÚfixturerV   ÚmarkÚ	fail_slowÚslowrj   r   r   r   r   Ú<module>   s    
/

