B
    @\                 @   sb   d dl mZmZmZmZ d dlZeeZd dl	Z	d dl
Z
ddl
mZ dZdddZdd	d
ZdS )    )absolute_importdivisionprint_functionunicode_literalsN   )BokehDeprecationWarning)
deprecatedwarn   c             C   s   t j| t|d d S )N)
stacklevel)warningsr	   r   )messager    r   5lib/python3.7/site-packages/bokeh/util/deprecation.pyr	   *   s    r	   c             C   s   t | tr|dks|dkr"tdt| dks@tdd | D sNtd| f d|  }d}|t|||d	 }|dk	r|d
|  7 }n:t | tjr|dkr|dkr|dkstd| }nt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)
isinstanceint).0xr   r   r   	<genexpr>4   s    zdeprecated.<locals>.<genexpr>zinvalid version tuple: %rz%d.%d.%dzS%(old)s was deprecated in Bokeh %(since)s and will be removed, use %(new)s instead.)oldsincenew z;deprecated(message) signature doesn't allow extra argumentsz*expected a version tuple or string message)
r   tuple
ValueErrorlenalldictstripsixZstring_typesr	   )Zsince_or_msgr   r   Zextrar   r   r   r   r   r   -   s     
r   )r
   )NNN)Z
__future__r   r   r   r   ZloggingZ	getLogger__name__logr    r   r   __all__r	   r   r   r   r   r   <module>   s   

