ó
/¾I]c           @   s6  d  Z  d d l m Z m Z d d l m Z d d l m Z m Z d d l	 m
 Z
 d d l m Z d d l m Z m Z m Z d d	 l m Z m Z m Z m Z m Z m Z m Z m Z d
 Z d Z d „  Z d „  Z d e e e
 f d „  ƒ  YZ d e f d „  ƒ  YZ e e d e f d „  ƒ  Yƒ ƒ Z e e d e f d „  ƒ  Yƒ ƒ Z  e d e e
 f d „  ƒ  Yƒ Z! e e d e f d „  ƒ  Yƒ ƒ Z" e d e e
 f d „  ƒ  Yƒ Z# e e d e f d „  ƒ  Yƒ ƒ Z$ d e f d „  ƒ  YZ% e d  e f d! „  ƒ  Yƒ Z& d" e% f d# „  ƒ  YZ' e d$ e' f d% „  ƒ  Yƒ Z( d& S('   s8   Int class.

Represents an unbounded int using a widget.
i   (   t   DescriptionWidgett   DescriptionStyle(   t   ValueWidget(   t   registert   widget_serialization(   t
   CoreWidgetiÿÿÿÿ(   t   Instance(   t   Colort   InstanceDictt   NumberFormat(   t   Unicodet   CIntt   Boolt   CaselessStrEnumt   Tuplet
   TraitErrort   defaultt   validates=   
Parameters
----------
value: integer
    The initial value.
sÐ   
Parameters
----------
value: integer
    The initial value.
min: integer
    The lower limit for the value.
max: integer
    The upper limit for the value.
step: integer
    The step between allowed values.
c            s(   d ‡  f d † } t | _ | ˆ  _ ˆ  S(   s)   Add int docstring template to class init.c            s3   | d  k	 r | | d <n  t ˆ  |  ƒ j |   d  S(   Nt   value(   t   Nonet   supert   __init__(   t   selfR   t   kwargs(   t   cls(    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR   )   s    N(   R   t
   _int_doc_tt   __doc__R   (   R   R   (    (   R   s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   _int_doc'   s    		c            s1   d d d d ‡  f d † } t | _ | ˆ  _ ˆ  S(   s1   Add bounded int docstring template to class init.c            s~   | d  k	 r | | d <n  | d  k	 r2 | | d <n  | d  k	 rK | | d <n  | d  k	 rd | | d <n  t ˆ  |  ƒ j |   d  S(   NR   t   mint   maxt   step(   R   R   R   (   R   R   R   R   R   R   (   R   (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR   4   s    N(   R   t   _bounded_int_doc_tR   R   (   R   R   (    (   R   s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   _bounded_int_doc2   s    		t   _Intc           B   s8   e  Z d  Z e d d d ƒj d e ƒ Z d d „ Z RS(   s1   Base class for widgets that represent an integer.i    t   helps	   Int valuet   syncc         K   s3   | d  k	 r | | d <n  t t |  ƒ j |   d  S(   NR   (   R   R   R!   R   (   R   R   R   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR   H   s    N(	   t   __name__t
   __module__R   R   t   tagt   TrueR   R   R   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR!   D   s   t   _BoundedIntc           B   sž   e  Z d  Z e d d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z d d d d d „ Z	 e
 d ƒ d	 „  ƒ Z e
 d
 ƒ d „  ƒ Z e
 d ƒ d „  ƒ Z RS(   sS   Base class for widgets that represent an integer bounded from above and below.
    id   R"   s	   Max valueR#   i    s	   Min valuec         K   s~   | d  k	 r | | d <n  | d  k	 r2 | | d <n  | d  k	 rK | | d <n  | d  k	 rd | | d <n  t t |  ƒ j |   d  S(   NR   R   R   R   (   R   R   R(   R   (   R   R   R   R   R   R   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR   T   s    R   c         C   sM   | d } |  j  | k s( |  j | k  rI t  t | |  j  ƒ |  j ƒ } n  | S(   s   Cap and floor valueR   (   R   R   (   R   t   proposalR   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   _validate_value_   s    
!R   c         C   sG   | d } | |  j  k r( t d ƒ ‚ n  | |  j k rC | |  _ n  | S(   s   Enforce min <= value <= maxR   s   setting min > max(   R   R   R   (   R   R)   R   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   _validate_ming   s    
R   c         C   sG   | d } | |  j  k  r( t d ƒ ‚ n  | |  j k  rC | |  _ n  | S(   s   Enforce min <= value <= maxR   s   setting max < min(   R   R   R   (   R   R)   R   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   _validate_maxq   s    
N(   R$   R%   R   R   R&   R'   R   R   R   R   R   R*   R+   R,   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR(   N   s   
t   IntTextc           B   s˜   e  Z d  Z e d ƒ j d e ƒ Z e d ƒ j d e ƒ Z e e	 d d ƒj d e ƒ Z
 e e	 d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z RS(	   s*   Textbox widget that represents an integer.t   IntTextViewR#   t   IntTextModelR"   s   Enable or disable user changessl   Update the value as the user types. If False, update on submission, e.g., pressing Enter or navigating away.i   s#   Minimum step to increment the value(   R$   R%   R   R
   R&   R'   t
   _view_namet   _model_nameR   t   Falset   disabledt   continuous_updateR   R   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR-   {   s   t   BoundedIntTextc           B   s˜   e  Z d  Z e d ƒ j d e ƒ Z e d ƒ j d e ƒ Z e e	 d d ƒj d e ƒ Z
 e e	 d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z RS(	   sL   Textbox widget that represents an integer bounded from above and below.
    R.   R#   t   BoundedIntTextModelR"   s   Enable or disable user changessl   Update the value as the user types. If False, update on submission, e.g., pressing Enter or navigating away.i   s#   Minimum step to increment the value(   R$   R%   R   R
   R&   R'   R0   R1   R   R2   R3   R4   R   R   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR5   †   s   t   SliderStylec           B   sJ   e  Z d  Z e d ƒ j d e ƒ Z e d d e d d ƒj d e ƒ Z	 RS(   s   Button style widget.t   SliderStyleModelR#   t
   allow_noneR"   s   Color of the slider handle.N(
   R$   R%   R   R
   R&   R'   R1   R   R   t   handle_color(    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR7   ’   s   t	   IntSliderc           B   s  e  Z d  Z e d ƒ j d e ƒ Z e d ƒ j d e ƒ Z e d d d ƒj d e ƒ Z	 e
 d d d	 g d
 d d d ƒ j d e ƒ Z e e d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z e e d d ƒj d e ƒ Z e e d d ƒj d e ƒ Z e e ƒ j d e e  Z RS(   sK   Slider widget that represents an integer bounded from above and below.
    t   IntSliderViewR#   t   IntSliderModeli   R"   s#   Minimum step to increment the valuet   valuest
   horizontalt   verticalt   default_values   Vertical or horizontal.s3   Display the current value of the slider next to it.t   ds   Format for the readoutsA   Update the value of the widget as the user is holding the slider.s   Enable or disable user changes(   R$   R%   R   R
   R&   R'   R0   R1   R   R   R   t   orientationR   t   readoutR	   t   readout_formatR4   R2   R3   R   R7   R   t   style(    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR;   ™   s   t   ProgressStylec           B   sJ   e  Z d  Z e d ƒ j d e ƒ Z e d d e d d ƒj d e ƒ Z	 RS(   s   Button style widget.t   ProgressStyleModelR#   R9   R"   s   Color of the progress bar.N(
   R$   R%   R   R
   R&   R'   R1   R   R   t	   bar_color(    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyRG   ¬   s   t   IntProgressc           B   s¼   e  Z d  Z e d ƒ j d e ƒ Z e d ƒ j d e ƒ Z e d d d g d d d d	 ƒ j d e ƒ Z	 e d d
 d d d d g d d d d ƒ j d e ƒ Z
 e e ƒ j d e e  Z RS(   sJ   Progress bar that represents an integer bounded from above and below.
    t   ProgressViewR#   t   IntProgressModelR>   R?   R@   RA   R"   s   Vertical or horizontal.t   successt   infot   warningt   dangert    s-   Use a predefined styling for the progess bar.(   R$   R%   R   R
   R&   R'   R0   R1   R   RC   t	   bar_styleR   RG   R   RF   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyRJ   ³   s   t	   _IntRangec           B   sŒ   e  Z e e ƒ  e ƒ  d  d d d ƒj d e ƒ Z e d „  ƒ Z e j	 d „  ƒ Z e d „  ƒ Z
 e
 j	 d	 „  ƒ Z
 e d
 ƒ d „  ƒ Z RS(   RA   i    i   R"   s   Tuple of (lower, upper) boundsR#   c         C   s   |  j  d S(   Ni    (   R   (   R   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   lowerÈ   s    c         C   s   | |  j  d f |  _  d  S(   Ni   (   R   (   R   RT   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyRT   Ì   s    c         C   s   |  j  d S(   Ni   (   R   (   R   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   upperÐ   s    c         C   s   |  j  d | f |  _  d  S(   Ni    (   R   (   R   RU   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyRU   Ô   s    R   c         C   s5   | d \ } } | | k  r+ t  d ƒ ‚ n  | | f S(   NR   s   setting lower > upper(   R   (   R   R)   RT   RU   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR*   Ø   s    (   i    i   (   R$   R%   R   R   R&   R'   R   t   propertyRT   t   setterRU   R   R*   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyRS   Ä   s   t   Playc           B   sì   e  Z d  Z e d d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z e e	 d d ƒj d e ƒ Z
 e d ƒ j d e ƒ Z e d	 ƒ j d e ƒ Z e d d
 ƒ j d e ƒ Z e d d ƒ j d e ƒ Z e e d d ƒj d e ƒ Z RS(   sS   Play/repeat buttons to step through values automatically, and optionally loop.
    id   R"   s'   The maximum value for the play control.R#   i   s   Increment steps   Enable or disable user changest   PlayViewt	   PlayModels)   Whether the control is currently playing.s4   Whether the control will repeat in a continous loop.s,   Show the repeat toggle button in the widget.(   R$   R%   R   R   R&   R'   t   intervalR   R   R2   R3   R
   R0   R1   t   _playingt   _repeatt   show_repeat(    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyRX   ß   s   t   _BoundedIntRangec           B   sz   e  Z e d  d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z d „  Z e d d ƒ d	 „  ƒ Z	 e d
 ƒ d „  ƒ Z
 RS(   id   R"   s	   Max valueR#   i    s	   Min valuec         O   s   | j  d d ƒ | j  d d ƒ } } | j  d d  ƒ sb d | d | d | d | f | d <n  t t |  ƒ j | | Ž  d  S(   NR   i    R   id   R   g      è?g      Ð?(   t   getR   R   R_   R   (   R   t   argsR   R   R   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR   ò   s
    %R   R   c         C   sô   | d } | d } | j  d k rA | |  j k rA t d ƒ ‚ n  | j  d k rn | |  j k  rn t d ƒ ‚ n  | j  d k r¯ t | |  j d ƒ t | |  j d ƒ f |  _ n  | j  d k rð t | |  j d ƒ t | |  j d ƒ f |  _ n  | S(	   Nt   traitR   R   s   setting min > maxR   s   setting max < mini    i   (   t   nameR   R   R   R   (   R   R)   Rb   t   new(    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   _validate_boundsù   s    

22R   c         C   sr   t  t |  ƒ j | ƒ \ } } t | |  j ƒ t | |  j ƒ } } t | |  j ƒ t | |  j ƒ } } | | f S(   N(   R   R_   R*   R   R   (   R   R)   RT   RU   (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR*     s    %%(   R$   R%   R   R&   R'   R   R   R   R   Re   R*   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyR_   î   s
   	t   IntRangeSliderc           B   s"  e  Z d  Z e d ƒ j d e ƒ Z e d ƒ j d e ƒ Z e d d d ƒj d e ƒ Z	 e
 d d d	 g d
 d d d ƒ j d e ƒ Z e e d d ƒj d e ƒ Z e d d d ƒj d e ƒ Z e e d d ƒj d e ƒ Z e e d d ƒj d e e  Z e e d d ƒj d e ƒ Z RS(   s5  Slider/trackbar that represents a pair of ints bounded by minimum and maximum value.

    Parameters
    ----------
    value : int tuple
        The pair (`lower`, `upper`) of integers
    min : int
        The lowest allowed value for `lower`
    max : int
        The highest allowed value for `upper`
    t   IntRangeSliderViewR#   t   IntRangeSliderModeli   R"   s$   Minimum step that the value can takeR>   R?   R@   RA   s   Vertical or horizontal.s3   Display the current value of the slider next to it.RB   s   Format for the readoutsA   Update the value of the widget as the user is sliding the slider.s   Slider style customizations.s   Enable or disable user changes(   R$   R%   R   R
   R&   R'   R0   R1   R   R   R   RC   R   RD   R	   RE   R4   R   R7   R   RF   R2   R3   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyRf     s   !N()   R   t   widget_descriptionR    R   t   valuewidgetR   t   widgetR   R   t   widget_coreR   t	   traitletsR   t   trait_typesR   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R    R!   R(   R-   R5   R7   R;   RG   RJ   RS   RX   R_   Rf   (    (    (    s<   lib/python2.7/site-packages/ipywidgets/widgets/widget_int.pyt   <module>   sF   :			
-	
!