
    ^h]/                     $   S r SSKJrJr  SSKJr  SSKJrJr  SSK	J
r
  SSKJr  SSKJrJrJr  SS	KJrJrJrJrJrJrJrJr  S
rSrS rS r " S S\\\
5      r " S S\5      r\\ " S S\5      5       5       r\\ " S S\5      5       5       r \ " S S\\
5      5       r!\\ " S S\5      5       5       r"\ " S S\\
5      5       r#\\ " S S\5      5       5       r$ " S S\5      r%\ " S  S!\5      5       r& " S" S#\%5      r'\ " S$ S%\'5      5       r(g&)'z8Int class.

Represents an unbounded int using a widget.
   )DescriptionWidgetDescriptionStyle)ValueWidget)registerwidget_serialization)
CoreWidget    )Instance)ColorInstanceDictNumberFormat)UnicodeCIntBoolCaselessStrEnumTuple
TraitErrordefaultvalidatez=
Parameters
----------
value: integer
    The initial value.
a)  
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.
behavior : str
    slider handle and connector dragging behavior. Default is 'drag-tap'.
c                 <   ^  SU 4S jjn[         Ul        UT l        T $ )z)Add int docstring template to class init.c                 4   > Ub  XS'   [         TU ]  " S0 UD6  g Nvalue super__init__)selfr   kwargsclss      W/home/james-whalen/.local/lib/python3.13/site-packages/ipywidgets/widgets/widget_int.pyr   _int_doc.<locals>.__init__+   s"    #7Oc4!+F+    N)
_int_doc_t__doc__r   r    r   s   ` r!   _int_docr(   )   s    ,
 "HCLJr#   c                 <   ^  SU 4S jjn[         Ul        UT l        T $ )z1Add bounded int docstring template to class init.c                 ^   > Ub  XS'   Ub  X%S'   Ub  X5S'   Ub  XES'   [         TU ]  " S0 UD6  g Nr   minmaxstepr   r   )r   r   r,   r-   r.   r   r    s         r!   r   "_bounded_int_doc.<locals>.__init__6   sG    #7O?5M?5M!6Nc4!+F+r#   NNNN)_bounded_int_doc_tr&   r   r'   s   ` r!   _bounded_int_docr2   4   s    	, *HCLJr#   c                   X   ^  \ rS rSrSr\" SSS9R                  SS9rS
U 4S jjrS	r	U =r
$ )_IntF   z1Base class for widgets that represent an integer.r	   z	Int valuehelpTsyncc                 4   > Ub  XS'   [         TU ]  " S0 UD6  g r   r   )r   r   r   	__class__s      r!   r   _Int.__init__J   s     #7O"6"r#   r   r$   )__name__
__module____qualname____firstlineno__r&   r   tagr   r   __static_attributes____classcell__r;   s   @r!   r4   r4   F   s*    ;%))t)4E# #r#   r4   c                      ^  \ rS rSrSr\" SSS9R                  SS9r\" SS	S9R                  SS9rSU 4S
 jjr	\
" S5      S 5       r\
" S5      S 5       r\
" S5      S 5       rSrU =r$ )_BoundedIntP   zSBase class for widgets that represent an integer bounded from above and below.
    d   	Max valuer6   Tr8   r	   	Min valuec                 ^   > Ub  XS'   Ub  X%S'   Ub  X5S'   Ub  XES'   [         TU ]  " S0 UD6  g r+   r   )r   r   r,   r-   r.   r   r;   s         r!   r   _BoundedInt.__init__V   sE    #7O?5M?5M!6N"6"r#   r   c                     US   nU R                   U:  d  U R                  U:  a)  [        [        X R                   5      U R                  5      nU$ )zCap and floor valuer   )r,   r-   )r   proposalr   s      r!   _validate_value_BoundedInt._validate_valuea   sC     !88etxx%/E88,dhh7Er#   r,   c                 n    US   nX R                   :  a  [        S5      eX R                  :  a  X l        U$ )Enforce min <= value <= maxr   setting min > max)r-   r   r   )r   rN   r,   s      r!   _validate_min_BoundedInt._validate_mini   7     w>011J
r#   r-   c                 n    US   nX R                   :  a  [        S5      eX R                  :  a  X l        U$ )rR   r   setting max < min)r,   r   r   )r   rN   r-   s      r!   _validate_max_BoundedInt._validate_maxs   rV   r#   r   r0   )r=   r>   r?   r@   r&   r   rA   r-   r,   r   r   rO   rT   rY   rB   rC   rD   s   @r!   rF   rF   P   s    
s
%
)
)t
)
4C
q{
#
'
'T
'
2C	# g  e_  e_ r#   rF   c                       \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9r\	" SSS	9R                  SS9r
\	" SS
S	9R                  SS9r\" SSS	9R                  SS9rSrg)IntText}   z*Textbox widget that represents an integer.IntTextViewTr8   IntTextModelFEnable or disable user changesr6   lUpdate the value as the user types. If False, update on submission, e.g., pressing Enter or navigating away.r   #Minimum step to increment the valuer   Nr=   r>   r?   r@   r&   r   rA   
_view_name_model_namer   disabledcontinuous_updater   r.   rB   r   r#   r!   r]   r]   }   s     5'+++6J.)--4-8KE @AEE4EPHU  *X  Y  ]  ]  cg  ]  h=>BBBMDr#   r]   c                       \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9r\	" SSS	9R                  SS9r
\	" SS
S	9R                  SS9r\" SSS	9R                  SS9rSrg)BoundedIntText   zLTextbox widget that represents an integer bounded from above and below.
    r_   Tr8   BoundedIntTextModelFra   r6   rb   r   rc   r   Nrd   r   r#   r!   rj   rj      s    '+++6J/044$4?KE @AEE4EPHU  *X  Y  ]  ]  cg  ]  h=>BBBMDr#   rj   c                   l    \ rS rSrSr\" S5      R                  SS9r\" SSSS9R                  SS9r	S	r
g)
SliderStyle   Button style widget.SliderStyleModelTr8   NzColor of the slider handle.
allow_noner7   r   )r=   r>   r?   r@   r&   r   rA   rf   r   handle_colorrB   r   r#   r!   rn   rn      s<    ,-11t1<K$5RSWW]aWbLr#   rn   c                      \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9r\	" SSS	9R                  SS9r
\" S
S/S
SS9R                  SS9r\" SSS	9R                  SS9r\" SSS	9R                  SS9r\" SSS	9R                  SS9r\" SSS	9R                  SS9r\" \5      R                  " SSS0\D6r\" / SQSSS9R                  SS9rSrg)	IntSlider   zKSlider widget that represents an integer bounded from above and below.
    IntSliderViewTr8   IntSliderModelr   rc   r6   
horizontalverticalVertical or horizontal.valuesdefault_valuer7   3Display the current value of the slider next to it.dFormat for the readoutzAUpdate the value of the widget as the user is holding the slider.Fra   r9   drag-tapz	drag-snaptapdragsnapr   Slider dragging behavior.r   N)r=   r>   r?   r@   r&   r   rA   re   rf   r   r.   r   orientationr   readoutr   readout_formatrh   rg   r   rn   r   stylebehaviorrB   r   r#   r!   rv   rv      s+   )--4-8J*+//T/:K=>BBBMD!,
)C")BDDGCTCN 4STXX^bXcG!*,,/CTCN T(klppvzp{E @AEE4EPH%))LtL7KLE&V 'BDDGCTCN r#   rv   c                   l    \ rS rSrSr\" S5      R                  SS9r\" SSSS9R                  SS9r	S	r
g)
ProgressStyle   rp   ProgressStyleModelTr8   NzColor of the progress bar.rr   r   )r=   r>   r?   r@   r&   r   rA   rf   r   	bar_colorrB   r   r#   r!   r   r      s<    ./333>Kdt2NOSSY]S^Ir#   r   c                       \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9r\	" SS/SS	S
9R                  SS9r
\	" / SQSSS
9R                  SS9r\" \5      R                  " SSS0\D6rSrg)IntProgress   zJProgress bar that represents an integer bounded from above and below.
    ProgressViewTr8   IntProgressModelrz   r{   r|   r}   )successinfowarningdanger r   z.Use a predefined styling for the progress bar.r9   r   N)r=   r>   r?   r@   r&   r   rA   re   rf   r   r   	bar_styler   r   r   r   rB   r   r#   r!   r   r      s    (,,$,7J,-11t1<K!,
)C")BDDGCTCN   ;2ACCF3D3>  '++NN9MNEr#   r   c                       \ rS rSr\" \" 5       \" 5       SSS9R                  SS9r\S 5       r	\	R                  S 5       r	\S	 5       r\R                  S
 5       r\" S5      S 5       rSrg)	_IntRange   )r	   r   zTuple of (lower, upper) bounds)r   r7   Tr8   c                      U R                   S   $ Nr	   r[   r   s    r!   lower_IntRange.lower       zz!}r#   c                 .    XR                   S   4U l         g Nr   r[   )r   r   s     r!   r   r      s    ZZ]+
r#   c                      U R                   S   $ r   r[   r   s    r!   upper_IntRange.upper   r   r#   c                 0    U R                   S   U4U l         g r   r[   )r   r   s     r!   r   r      s    jjmU+
r#   r   c                 6    US   u  p#X2:  a  [        S5      eX#4$ )Nr   zsetting lower > upper)r   )r   rN   r   r   s       r!   rO   _IntRange._validate_value   s'    (=455|r#   r[   N)r=   r>   r?   r@   r   r   rA   r   propertyr   setterr   r   rO   rB   r   r#   r!   r   r      s    $&$&799<$ 
   \\, ,   \\, , g r#   r   c                   X   \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9r\	" SS9R                  SS9r
\	" S	S9R                  SS9r\" S
SS9R                  SS9r\" SSS9R                  SS9r\	" SSS9R                  SS9r\	" SSS9R                  SS9rSrg)Play   zSPlay/repeat buttons to step through values automatically, and optionally loop.
    PlayViewTr8   	PlayModelz)Whether the control is currently playing.r6   z5Whether the control will repeat in a continuous loop.rH   z*The time between two animation steps (ms).r   zIncrement stepFra   z,Show the repeat toggle button in the widget.r   N)r=   r>   r?   r@   r&   r   rA   re   rf   r   playingrepeatr   intervalr.   rg   show_repeatrB   r   r#   r!   r   r      s    $((d(3J+&***5KCDHHdHSGNOSSY]S^FCJKOOUYOZH()--4-8DE @AEE4EPHt"PQUU[_U`Kr#   r   c                      ^  \ rS rSr\" SSS9R                  SS9r\" SSS9R                  SS9rU 4S	 jr\	" S
S5      S 5       r
\	" S5      U 4S j5       rSrU =r$ )_BoundedIntRange   rH   rI   r6   Tr8   r	   rJ   c           	      p  > UR                  SS5      UR                  SS5      pCUR                  SS 5      c  SU-  SU-  -   SU-  SU-  -   4US'   O*[        US   [        5      (       d   [        US   5      US'   [        TU ]  " U0 UD6  g !   [        SR	                  [        US   5      5      5      e= f)	Nr,   r	   r-   rH   r   g      ?g      ?z_A 'range' must be able to be cast to a tuple. The input of type {} could not be cast to a tuple)get
isinstancetuple	TypeErrorformattyper   r   )r   argsr   r,   r-   r;   s        r!   r   _BoundedIntRange.__init__   s    ::eQ'E3)?S::gt$,#czD3J6#czD3J68F7OF7OU33"'w"8w 	$)&)77=vd6'?>S7T s   +B (B5r,   r-   c                    US   nUS   nUR                   S:X  a  X0R                  :  a  [        S5      eUR                   S:X  a  X0R                  :  a  [        S5      eUR                   S:X  a5  [        X0R                  S   5      [        X0R                  S   5      4U l        UR                   S:X  a5  [        X0R                  S   5      [        X0R                  S   5      4U l        U$ )	Ntraitr   r,   rS   r-   rX   r	   r   )namer-   r   r,   r   )r   rN   r   news       r!   _validate_bounds!_BoundedIntRange._validate_bounds  s    !w::3>011::3>011::c::a=13sJJqM3JKDJ::c::a=13sJJqM3JKDJ
r#   r   c                    > [         TU ]  U5      u  p#[        X R                  5      [        X0R                  5      p2[        X R                  5      [        X0R                  5      p2X#4$ r$   )r   rO   r,   r-   )r   rN   r   r   r;   s       r!   rO    _BoundedIntRange._validate_value  sN    w.x85((+S-Au5((+S-Au|r#   r[   )r=   r>   r?   r@   r   rA   r-   r,   r   r   r   rO   rB   rC   rD   s   @r!   r   r      sp    
s
%
)
)t
)
4C
q{
#
'
'T
'
2C* eU  g r#   r   c                      \ rS rSrSr\" S5      R                  SS9r\" S5      R                  SS9r\	" SSS	9R                  SS9r
\" S
S/S
SS9R                  SS9r\" SSS	9R                  SS9r\" SSS	9R                  SS9r\" SSS	9R                  SS9r\" \SS	9R                  " SSS0\D6r\" SSS	9R                  SS9r\" / SQSSS9R                  SS9rSrg)IntRangeSlideri  a/  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`
step : int
    step of the trackbar
description : str
    name of the slider
orientation : {'horizontal', 'vertical'}
    default is 'horizontal'
readout : {True, False}
    default is True, display the current value of the slider next to it
behavior : str
    slider handle and connector dragging behavior. Default is 'drag-tap'.
readout_format : str
    default is '.2f', specifier for the format function used to represent
    slider value for human consumption, modeled after Python 3's format
    specification mini-language (PEP 3101).
IntRangeSliderViewTr8   IntRangeSliderModelr   z$Minimum step that the value can taker6   rz   r{   r|   r}   r   r   r   zAUpdate the value of the widget as the user is sliding the slider.zSlider style customizations.r9   Fra   r   r   r   r   N)r=   r>   r?   r@   r&   r   rA   re   rf   r   r.   r   r   r   r   r   r   rh   r   rn   r   r   rg   r   rB   r   r#   r!   r   r     s2   2 -.222=J/044$4?K>?CCCND!,
)C")BDDGCTCN 4STXX^bXcG!*,,/CTCN T(klppvzp{+IJNNqTXq\pqEE @AEE4EPH&V 'BDDGCTCN r#   r   N))r&   widget_descriptionr   r   valuewidgetr   widgetr   r   widget_corer   	traitletsr
   trait_typesr   r   r   r   r   r   r   r   r   r   r   r%   r1   r(   r2   r4   rF   r]   rj   rn   rv   r   r   r   r   r   r   r   r#   r!   <module>r      s  
 D $ 2 #  : :  
 	$#k: #+$ +Z 
	Nd N 
 
N 
N[ N  
N 
c"J c 
c 
S S  
S$ 
_$j _ 
_ 
O+ O  
O 6 
a; a 
a&y &R 
&S% &S 
&Sr#   