a
    p=ic                     @   sh   d Z ddlZddlm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
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.
    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   j/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/numpy/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    || _d S r   )superr	   _FindFuncs__filename)r   filename	__class__r   r   r	      s    
zFindFuncs.__init__c                 C   s   t  }||j tj| | |jd dks<|jd dkr`|jd jdkr`t	d
| j|j|jd dkrt|jdks|jd	 d
krd| jkrd S t|jdkrd S dd |jD }d|v rd S t	d
| j|jd S )Nsimplefilterfilterwarningsr   ignorezFwarnings should have an appropriate stacklevel; found in {} on line {}warn   warningsztesting/tests/test_warnings.py   c                 S   s   h | ]
}|j qS r   )arg).0kwr   r   r   	<setcomp>2       z'FindFuncs.visit_Call.<locals>.<setcomp>
stacklevel)r   visitfuncr
   r   r   r   argssAssertionErrorformatr   linenolenkeywords)r   r   pr.   r   r   r   
visit_Call   s6    
zFindFuncs.visit_Call)r   r   r   r	   r6   __classcell__r   r   r   r   r      s   r   c               	   C   s   t tjj} | dD ]~}| d |jv r*q|| d kr8q|| d d krJqtt|,}t	
| }t|| W d    q1 s0    Y  qd S )Nz*.pytestingz__init__.pyrandom)r   numpy__file__parentrglobparentstokenizeopenstrr
   parsereadr   r,   )basepathfiletreer   r   r   test_warning_calls:   s    rH   )__doc__Zpytestpathlibr   r
   r?   r:   r   r   r   markZslowrH   r   r   r   r   <module>   s   "