σ
mάJ]c           @` s  d  Z  d d l m Z m Z m Z m Z d d l Z e j e  Z	 d d l
 m
 Z
 m Z d d l Z d d l m Z d d l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z d d l m Z d d	 l m Z d d
 l m Z d d l  m! Z! d d l" m# Z# d Z$ e d e# f d     Y Z% d e% f d     YZ& d e% f d     YZ' d e% f d     YZ( d e% f d     YZ) d S(   u#    Various kinds of slider widgets.

i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   datetimet   datei   (   t   abstract(
   t   Boolt   Intt   Floatt   Stringt   Datet   Enumt   Tuplet   Instancet   Colort   Override(   t   SliderCallbackPolicy(   t   error(   t   EQUAL_SLIDER_START_ENDi   (   t   Callbacki   (   t   Widgetu   AbstractSlideru   Slideru   RangeSlideru
   DateSlideru   DateRangeSlidert   AbstractSliderc           B` sγ   e  Z d  Z d   Z e d d d d  Z e d e d d  Z e d d  Z	 e
 d d	 d d Z e d e d d  Z e e d d
 Z e d d d d  Z e
 e d d d d Z e d d d d  Z e e  d    Z RS(   u    c         K` sX   d | k r> d | k r> | d | d k r> t  d   q> n  t t |   j |   d  S(   Nu   startu   endu)   Slider 'start' and 'end' cannot be equal.(   t
   ValueErrort   superR   t   __init__(   t   selft   kwargs(    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyR   :   s    t   defaultu    t   helpu   
    Slider's label.
    u-   
    Whether or not show slider's value.
    u   
    u   ltru   rtlu¨   
    A callback to run in the browser whenever the current Slider value changes.

    DEPRECATED: use .js_on_change or .on_change with "value" or "value_throttled"
    iΘ   uX   
    Number of milliseconds to pause between callback calls as the slider is moved.
    u   throttleuB  
    When the value_throttled property is updated.

    This parameter can take on only one of three options:

    * "continuous": the callback will be executed immediately for each movement of the slider
    * "throttle": the callback will be executed at most every ``callback_throttle`` milliseconds.
    * "mouseup": the callback will be executed only once when the slider is released.

    The "mouseup" policy is intended for scenarios in which the callback is expensive in time.

    Both Python and JS callbacks on "value_throttled" will respect this policy setting.
    u   #e6e6e6c         C` sJ   t  |  d  rF t  |  d  rF |  j |  j k rF d j |  |  j  Sn  d  S(   Nu   startu   endu   {!s} with title {!s}(   t   hasattrt   startt   endt   formatt   title(   R   (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyt   _check_missing_dimensionl   s    (   t   __name__t
   __module__t   __doc__R   R
   R"   R   t   Truet
   show_valueR!   R   t	   directiont   tooltipsR   R   t   callbackR	   t   callback_throttleR   t   callback_policyR   t	   bar_colorR   R   R#   (    (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyR   6   s*   											t   Sliderc           B` sn   e  Z d  Z e d d  Z e d d  Z e d d  Z e d d  Z e d d d d  Z e	 d d	  Z
 RS(
   u'    Slider-based number selection widget. R   u&   
    The minimum allowable value.
    u&   
    The maximum allowable value.
    u$   
    Initial or selected value.
    uL   
    Initial or selected value, throttled according to callback_policy.
    R   i   u.   
    The step between consecutive values.
    u   0[.]00(   R$   R%   R&   R	   R   R    t   valuet   value_throttledt   stepR   R!   (    (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyR/   v   s   					t   RangeSliderc           B` sz   e  Z d  Z e e e d d Z e e e d d Z e d d  Z e d d  Z e d d d d  Z	 e
 d d	  Z RS(
   u3    Range-slider based number range selection widget. R   u$   
    Initial or selected range.
    uL   
    Initial or selected value, throttled according to callback_policy.
    u&   
    The minimum allowable value.
    u&   
    The maximum allowable value.
    R   i   u.   
    The step between consecutive values.
    u   0[.]00(   R$   R%   R&   R   R	   R0   R1   R   R    R2   R   R!   (    (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyR3      s   					t
   DateSliderc           B` sn   e  Z d  Z e d d  Z e d d  Z e d d  Z e d d  Z e d d d d  Z	 e
 d d	  Z RS(
   u%    Slider-based date selection widget. R   u$   
    Initial or selected value.
    uL   
    Initial or selected value, throttled according to callback_policy.
    u&   
    The minimum allowable value.
    u&   
    The maximum allowable value.
    R   i   u.   
    The step between consecutive values.
    u   %d %b %Y(   R$   R%   R&   R   R0   R1   R   R    R   R2   R   R!   (    (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyR4   ¨   s   					t   DateRangeSliderc           B` s   e  Z d  Z e d    Z e d    Z e e e d d Z e e e d d Z	 e d d  Z
 e d d  Z e d d	 d d
  Z e d d  Z RS(   u+    Slider-based date range selection widget. c         C` s   |  j  d k r d S|  j  \ } } t | t j  rJ t j | d  } n | } t | t j  rx t j | d  } n | } | | f S(   uc    Convenience property to retrieve the value tuple as a tuple of
        datetime objects.

        iθ  N(   R0   t   Nonet
   isinstancet   numberst   NumberR   t   utcfromtimestamp(   R   t   v1t   v2t   d1t   d2(    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyt   value_as_datetimeΔ   s    c         C` s΄   |  j  d k r d S|  j  \ } } t | t j  r` t j | d  } t | j   d    } n | } t | t j  r€ t j | d  } t | j   d    } n | } | | f S(   u|    Convenience property to retrieve the value tuple as a tuple of
        date objects.

        Added in version 1.1
        iθ  i   N(	   R0   R6   R7   R8   R9   R   R:   R   t	   timetuple(   R   R;   R<   t   dtR=   R>   (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyt   value_as_dateΧ   s    R   u$   
    Initial or selected range.
    uL   
    Initial or selected value, throttled according to callback_policy.
    u&   
    The minimum allowable value.
    u&   
    The maximum allowable value.
    R   i   u.   
    The step between consecutive values.
    u   %d %b %Y(   R$   R%   R&   t   propertyR?   RB   R   R   R0   R1   R   R    R   R2   R   R!   (    (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyR5   Α   s   					(   u   AbstractSlideru   Slideru   RangeSlideru
   DateSlideru   DateRangeSlider(*   R&   t
   __future__R    R   R   R   t   loggingt	   getLoggerR$   t   logR   R   R8   t   core.has_propsR   t   core.propertiesR   R   R	   R
   R   R   R   R   R   R   t
   core.enumsR   t   core.validationR   t   core.validation.errorsR   t	   callbacksR   t   widgetR   t   __all__R   R/   R3   R4   R5   (    (    (    s;   lib/python2.7/site-packages/bokeh/models/widgets/sliders.pyt   <module>	   s.   "F    ?