U
    Ãmœd¹  ã                   @  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   úR/home/sam/Atlas/atlas_env/lib/python3.8/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	   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   