U
    /e}                     @  s   d dl mZ d dlZeeZd dlZd dlmZm	Z	 ddlm
Z
 dZeeeef Zddd	d
dddZe	dddddd
dddZe	dd
dddZdddddd
dddZdS )    )annotationsN)Tupleoverload   )BokehDeprecationWarning)
deprecatedwarn   strintNone)message
stacklevelreturnc                 C  s   t j| t|d d S )N)r   )warningsr   r   )r   r    r   :/tmp/pip-unpacked-wheel-f5fndrjf/bokeh/util/deprecation.pyr   *   s    r   Versionz
str | None)since_or_msgoldnewextrar   c                 C  s   d S Nr   )r   r   r   r   r   r   r   r   -   s    r   )r   r   c                 C  s   d S r   r   )r   r   r   r   r   1   s    zVersion | strc           	      C  s   t | tr|dks|dkr"tdt| dks@tdd | D sNtd| | \}}}| d| d| }| d| d	| d
}|dk	r|d|  7 }n$|dkr|dkr|dkstd| }t| dS )z/ Issue a nicely formatted deprecation warning. Nz0deprecated entity and a replacement are required   c                 s  s    | ]}t |to|d kV  qdS )r   N)
isinstancer   ).0xr   r   r   	<genexpr>=   s     zdeprecated.<locals>.<genexpr>zinvalid version tuple: .z was deprecated in Bokeh z and will be removed, use z	 instead. z;deprecated(message) signature doesn't allow extra arguments)r   tuple
ValueErrorlenallstripr   )	r   r   r   r   majorminorpatchZsincer   r   r   r   r   5   s    

)r	   )N)NNN)
__future__r   logging	getLogger__name__logr   typingr   r   r   __all__r   r   r   r   r   r   r   r   <module>   s    
     