o
    0Gf                     @  sN   d dl mZ d dlZd dlmZ d dlmZ dgZG dd dZdddZ	dS )    )annotationsN)WarningsChecker)warnspytest_warnsc                   @  s$   e Zd Zdd Zdd Zdd ZdS )NoWarningsCheckerc                 C  s   t jdd| _g | _d S )NT)record)warningscatch_warningscwrecself r   9lib/python3.10/site-packages/statsmodels/compat/pytest.py__init__   s   
zNoWarningsChecker.__init__c                 C  s   | j  | _d S )N)r
   	__enter__r   r   r   r   r   r      s   zNoWarningsChecker.__enter__c                 C  s2   | j rdd | j D }d|}td| d S )Nc                 S  s   g | ]}|j jqS r   )category__name__).0wr   r   r   
<listcomp>   s    z.NoWarningsChecker.__exit__.<locals>.<listcomp>z\nzJFunction is marked as not warning but the following warnings were found: 
)r   joinAssertionError)r   typevalue	tracebackr   Zjoinedr   r   r   __exit__   s   
zNoWarningsChecker.__exit__N)r   
__module____qualname__r   r   r   r   r   r   r   r      s    r   warning0type[Warning] | tuple[type[Warning], ...] | Nonereturn#WarningsChecker | NoWarningsCheckerc                 C  s"   | du rt  S | dusJ t| S )z

    Parameters
    ----------
    warning : {None, Warning, Tuple[Warning]}
        None if no warning is produced, or a single or multiple Warnings

    Returns
    -------
    cm

    N)r   r   )r   r   r   r   r      s   )r   r    r!   r"   )
Z
__future__r   r   Z_pytest.recwarnr   Zpytestr   __all__r   r   r   r   r   r   <module>   s    