a
    Df
                     @  s   d dl mZ d dlZd dlZd dlZd dlZd dlmZ dZdddddd	d
dZ	ddddZ
dddddddddZG dd deZG dd deZede ede dS )    )annotationsN)Version)
deprecatedfind_stack_levelPanelDeprecationWarningPanelUserWarningwarnstrztype[Warning] | Nonez
int | NoneNone)messagecategory
stacklevelreturnc                 C  s"   |d u rt  }tj| ||d d S )N)r   )r   warningsr   )r   r   r    r   `/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/panel/util/warnings.pyr      s    r   int)r   c                  C  s   ddl } tj| j}tj|d}tjtj}t }d}z@|rzt	|}|
||frz|
|sz|j}|d7 }q@qzq@W ~n~0 |S )z
    Find the first place in the stack that is not inside Panel and Param.
    Inspired by: pandas.util._exceptions.find_stack_level
    r   Ntests   )panelospathdirname__file__joinparaminspectcurrentframegetfile
startswithf_back)pnZpkg_dirZtest_dirZ	param_dirframer   fnamer   r   r   r      s    

r   zVersion | strz
str | None)remove_versionoldnewextrar   c                 C  s   dd l }t|j}t|j}t| tr.t| } | |krd|jrJ|jd dksdt|d|  d| d|d|  d}|r|d d  d|d	}|r|d
|	  7 }t
|t d S )Nr   rcz should have been removed in z, current version .z. is deprecated and will be removed in version z, use z	 instead. )r   r   __version__base_version
isinstancer	   is_prereleasepre
ValueErrorstripr   r   )r$   r%   r&   r'   r!   current_versionr-   r   r   r   r   r   :   s    


r   c                   @  s   e Zd ZdZdS )r   zA Panel-specific ``DeprecationWarning`` subclass.
    Used to selectively filter Panel deprecations for unconditional display.
    N__name__
__module____qualname____doc__r   r   r   r   r   Z   s   r   c                   @  s   e Zd ZdZdS )r   zxA Panel-specific ``UserWarning`` subclass.
    Used to selectively filter Panel warnings for unconditional display.
    Nr4   r   r   r   r   r   `   s   r   always)NN)NN)
__future__r   r   r   r   r   Zpackaging.versionr   __all__r   r   r   DeprecationWarningr   UserWarningr   simplefilterr   r   r   r   <module>   s    
 	    