File: //usr/local/lib/python3.10/dist-packages/numpy/tests/__pycache__/test_warnings.cpython-310.pyc
o
���g� � @ sh d Z ddlZddlmZ ddlZddlZddlZG dd� dej�ZG dd� dej�Z ej
jdd � �ZdS )
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 Zd Zdd� Zdd� Zdd� ZdS )� ParseCallc C s
g | _ d S �N)�ls)�self� r �D/usr/local/lib/python3.10/dist-packages/numpy/tests/test_warnings.py�__init__
s
zParseCall.__init__c C s t j�| |� | j�|j� d S r )�ast�NodeVisitor�
generic_visitr �append�attr�r �noder r r �visit_Attribute s zParseCall.visit_Attributec C s | j �|j� d S r )r r
�idr r r r �
visit_Name s zParseCall.visit_NameN)�__name__�
__module__�__qualname__r r r r r r r r s r c s$ e Zd Z� fdd�Zdd� Z� ZS )� FindFuncsc s t � �� || _d S r )�superr �_FindFuncs__filename)r �filename�� __class__r r r s
zFindFuncs.__init__c C s� t � }|�|j� tj�| |� |jd dks|jd dkr0|jd jdkr0t d�
| j|j���|jd dkrmt
|j�dksE|jd d
krod| jkrLd S t
|j�dkrUd S d
d� |jD �}d|v rcd S t d�
| j|j���d S d S )N����simplefilter�filterwarningsr �ignorezFwarnings should have an appropriate stacklevel; found in {} on line {}�warn� ����warningsztesting/tests/test_warnings.py� c S s h | ]}|j �qS r )�arg)�.0�kwr r r � <setcomp>2 s z'FindFuncs.visit_Call.<locals>.<setcomp>�
stacklevel)r �visit�funcr
r r r �args�value�AssertionError�formatr �lineno�len�keywords)r r �pr- r r r �
visit_Call s0 �
��zFindFuncs.visit_Call)r r r r r5 �
__classcell__r r r r r s r c C s� t tj�j} | �d�D ]?}| d |jv rq|| d krq|| d d kr%qt�t|���}t �
|�� �}t|��
|� W d � n1 sEw Y qd 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 ���rG )
�__doc__�pytest�pathlibr r
r>