U
    Kvf                     @  sh   d dl mZ d dlmZmZ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ddZdS )    )annotations)TupleTypeUnionN)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   =/tmp/pip-unpacked-wheel-2v6byqio/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	   z0Type[Warning] | Tuple[Type[Warning], ...] | Nonez)Union[WarningsChecker, NoWarningsChecker])warningreturnc                 C  s&   | dkrt  S | dk	stt| S d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   r      s    )
__future__r   typingr   r   r   r   Z_pytest.recwarnr   Zpytestr   __all__r	   r   r   r   r   r   <module>   s   