
    [i                      U d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZmZmZmZ d dlmZmZmZmZ d dlmZmZmZmZmZ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& d dl'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z/ d dl0m1Z2 d dl3m4Z5 d dl6m7Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z> erd dl?m@ZA d dlBmCZD d dlEmFZG d dlHmIZJ d dlKmLZM d dlNmOZP d dlQmRZS d dlTmUZV d dlWmXZY d dlZm[Z\ d dl]m^Z_ d dl`maZb d d lcmdZd d d!lemfZg d d"lhmiZj d d#lkmlZm d d$lnmoZp d d%lqmrZs d d&ltmuZv d d'lwmxZy d d(lzm{Z| d d)l}m~Z d d*lmZ d d+lmZ d d,lmZ d d-lmZ d d.lmZ d d/lmZ  ed0      Ze G d1 d2             Ze G d3 d4e             Z^ ed56       G d7 d8e^             Z ed56       G d9 d:e^e             Z ed;e^d<=      Z G d> d?ee         Z ed@ed<=      Z G dA dBee   ee         Z ed56       G dC dDe^             Z ed56       G dE dFe             Z ed56       G dG dHe             Z ed56       G dI dJe             Z ed56       G dK dLe             Z ed56       G dM dNe             ZI ed56       G dO dPe             ZO ed56       G dQ dRe             Z1 ed56       G dS dTe^             ZR ed56       G dU dVe             ZU ed56       G dW dXe^             Zeez  ZdYedZ<   ee	e   z  dz  ZdYed[<    ed56       G d\ d]e             ZX ed56       G d^ d_e^             Za ed56       G d` dae^e             Z ed56       G db dce             Z ed56       G dd dee             Z ed56       G df dge             Z ed56       G dh die^             Zi ed56       G dj dke^             Z4 ed56       G dl dme4             Z ed56       G dn doe4             Z ed56       G dp dqe4             Z ed56       G dr dse^             Z{ ed56       G dt due^             Zl ed56       G dv dweee                ZL ed56       G dx dyeee                Zeez  ZdYedz<    ed56       G d{ d|e             Zr ed56       G d} d~eee                Zu ed56       G d deee                Zx ed56       G d deee                Z edeeeee      Z ed56       G d deee                Z7 ed56       G d de^             Z ed56       G d de^             Z~ ed56       G d de             Z ed56       G d de             Zeez  ZdYed<   eZdYed<    ed56       G d de             Z ed56       G d de             Z[ ed56       G d de^             Z ed56       G d de             Z ed56       G d d             ZFddZddZ ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Z ed56       G d deF             Ze^eFz  ZdYed<   ddZ ed56       G d deF             ZddZy)    )annotationsN)ABCabstractmethod)CallableIteratorSequence)	dataclassfieldfieldsis_dataclass)datedatetimetime	timedelta)TYPE_CHECKINGAnyGeneric	TypeAliasTypeVarcastoverload)Self)dataframe_utilutil)HeadingProtoTag)SelectSliderSerde)SliderSerde
SliderStep)DateInputSerdeDateTimeInputSerdeDateWidgetReturnTimeInputSerde_parse_date_value)Alert)Checkbox)Markdown)Slider)WidgetStateWidgetStates)TESTING_KEYuser_key_from_element_id)	DataFrame)Arrow)Block)Button)ButtonGroup)	ChatInput)Code)ColorPicker)	DateInput)DateTimeInput)Element)	Exception)
ForwardMsg)Heading)Json)Metric)MultiSelect)NumberInput)Radio)	Selectbox)Space)Text)TextArea)	TextInput)	TimeInput)Toast)SafeSessionState)AppTestTc                      e Zd ZdZy)InitialValuez0Used to represent the initial value of a widget.N)__name__
__module____qualname____doc__     r/var/www/html/userprofiledev.eatanceapp.com/venv/lib/python3.12/site-packages/streamlit/testing/v1/element_tree.pyrJ   rJ   Y   s    :rP   rJ   c                      e Zd ZU dZ ed      Zded<    ed      Zded<    ed      Zded	<   d
ed<   e	dd       Z
ddZee	dd              ZddZddddZddZy)r6   aL  
    Element base class for testing.

    This class's methods and attributes are universal for all elements
    implemented in testing. For example, ``Caption``, ``Code``, ``Text``, and
    ``Title`` inherit from ``Element``. All widget classes also
    inherit from Element, but have additional methods specific to each
    widget type. See the ``AppTest`` class for the full list of supported
    elements.

    For all element classes, parameters of the original element can be obtained
    as properties. For example, ``Button.label``, ``Caption.help``, and
    ``Toast.icon``.

    Freprstrtyper   protoElementTreeroot
str | Nonekeyc                     y NrO   selfrW   rY   s      rQ   __init__zElement.__init__~   s    HKrP   c              #     K   |  y wr]   rO   r_   s    rQ   __iter__zElement.__iter__   s     
s   c                     y)z%The value or contents of the element.NrO   rb   s    rQ   valuezElement.value   s     	rP   c                .    t        | j                  |      S )z4Fallback attempt to get an attribute from the proto.)getattrrW   )r_   names     rQ   __getattr__zElement.__getattr__   s    tzz4((rP   Ntimeoutc               :    | j                   j                  |      S )zRun the ``AppTest`` script which contains the element.

        Parameters
        ----------
        timeout
            The maximum number of seconds to run the script. None means
            use the AppTest's default.
        rj   rY   runr_   rk   s     rQ   rn   zElement.run        yy}}W}--rP   c                ,    t        j                  |       S r]   r   repr_rb   s    rQ   __repr__zElement.__repr__       zz$rP   rW   ElementProtorY   rX   returnNone)rx   zIterator[Self]rx   r   )rh   rU   rx   r   rk   zfloat | Nonerx   rG   rx   rU   )rK   rL   rM   rN   r
   rV   __annotations__rW   rY   r   r`   rc   propertyre   ri   rn   rt   rO   rP   rQ   r6   r6   g   s~      5!D#!E"E3"5)D+)	OK K   ) .2 	. rP   r6   FrS   c                  &    e Zd ZddZedd       Zy)UnknownElementc                z    |j                  d      }|J t        ||      | _        || _        || _        d | _        y )NrV   )
WhichOneofrg   rW   rY   rV   r[   r_   rW   rY   tys       rQ   r`   zUnknownElement.__init__   s?    f%~~UB'
		rP   c                    	 | j                   j                  }|J || j                  j                     S # t        $ r | j                  j
                  cY S w xY wr]   )rY   session_staterW   id
ValueErrorre   r_   states     rQ   re   zUnknownElement.value   sT    	$II++E$$$'' 	$::###	$s   25 AANrv   rz   )rK   rL   rM   r`   r~   re   rO   rP   rQ   r   r      s     $ $rP   r   c                  x    e Zd ZU dZ ed      Zded<   ded<   ded	<   d
ed<   ddZddZe	e
dd              Zy)WidgetzWidget base class for testing.FrS   rU   r   booldisabledrZ   r[   r   _valuec                b    || _         || _        t        | j                        | _        d | _        y r]   )rW   rY   r+   r   r[   r   r^   s      rQ   r`   zWidget.__init__   s'    
	+DGG4rP   c                    || _         | S zSet the value of the widget.r   r_   vs     rQ   	set_valuezWidget.set_value       rP   c                     y r]   rO   rb   s    rQ   _widget_statezWidget._widget_state   s    ,/rP   N)rW   r   rY   rX   rx   ry   )r   r   rx   r   rx   r(   )rK   rL   rM   rN   r
   r   r}   r`   r   r~   r   r   rO   rP   rQ   r   r      sE    (BN	OK
 /  /rP   r   El_coT)bound	covariantc                      e Zd ZddZddZedd       Zedd       Zedd       ZddZddZ	ddZ
dd	Zdd
Zedd       Zy)ElementListc                    || _         y r]   _list)r_   elss     rQ   r`   zElementList.__init__   s	    &)
rP   c                ,    t        | j                        S r]   )lenr   rb   s    rQ   __len__zElementList.__len__   s    4::rP   c                    t        |       S r]   )r   rb   s    rQ   r   zElementList.len   s    4yrP   c                     y r]   rO   r_   idxs     rQ   __getitem__zElementList.__getitem__   s    .1rP   c                     y r]   rO   r   s     rQ   r   zElementList.__getitem__   s    =@rP   c                p    t        |t              rt        | j                  |         S | j                  |   S r]   )
isinstanceslicer   r   r   s     rQ   r   zElementList.__getitem__   s-    c5!tzz#//zz#rP   c              #  8   K   | j                   E d {    y 7 wr]   r   rb   s    rQ   rc   zElementList.__iter__   s     ::s   c                ,    t        j                  |       S r]   rr   rb   s    rQ   rt   zElementList.__repr__   ru   rP   c                r    t        |t              r| j                  |j                  k(  S | j                  |k(  S r]   )r   r   r   )r_   others     rQ   __eq__zElementList.__eq__   s.    e[)::,,zzU""rP   c                >    t        t        | j                              S r]   )hashtupler   rb   s    rQ   __hash__zElementList.__hash__   s    E$**%&&rP   c                @    | D cg c]  }|j                    c}S c c}w r]   )re   )r_   es     rQ   valueszElementList.values   s    !%&A&&&s   N)r   zSequence[El_co]rx   ry   rx   int)r   r   rx   r   )r   r   rx   zElementList[El_co])r   zint | slicerx   zEl_co | ElementList[El_co])rx   zIterator[El_co]r|   )r   zElementList[El_co] | objectrx   r   )rx   zSequence[Any])rK   rL   rM   r`   r   r~   r   r   r   rc   rt   r   r   r   rO   rP   rQ   r   r      sk    *   1 1@ @
 #
' ' 'rP   r   W_coc                      e Zd ZddZy)
WidgetListc                `    | j                   D ]  }|j                  |k(  s|c S  t        |      r]   )r   r[   KeyError)r_   r[   r   s      rQ   __call__zWidgetList.__call__   s,    Auu|  smrP   N)r[   rU   rx   r   )rK   rL   rM   r   rO   rP   rQ   r   r      s    rP   r   c                  N    e Zd ZU  ed      Zded<   ded<   d
dZedd       Zy	)	AlertBaseFrS   
AlertProtorW   rU   iconc                .    || _         d | _        || _        y r]   )rW   r[   rY   r^   s      rQ   r`   zAlertBase.__init__  s    
	rP   c                .    | j                   j                  S r]   rW   bodyrb   s    rQ   re   zAlertBase.value      zzrP   NrW   r   rY   rX   rx   ry   r|   	rK   rL   rM   r
   rW   r}   r`   r~   re   rO   rP   rQ   r   r     s/    5)E:)
I
  rP   r   c                        e Zd Zd fdZ xZS )Errorc                4    t         |   ||       d| _        y Nerrorsuperr`   rV   r_   rW   rY   	__class__s      rQ   r`   zError.__init__      %	rP   r   rK   rL   rM   r`   __classcell__r   s   @rQ   r   r          rP   r   c                        e Zd Zd fdZ xZS )Warningc                4    t         |   ||       d| _        y Nwarningr   r   s      rQ   r`   zWarning.__init__      %	rP   r   r   r   s   @rQ   r   r          rP   r   c                        e Zd Zd fdZ xZS )Infoc                4    t         |   ||       d| _        y Ninfor   r   s      rQ   r`   zInfo.__init__"  s    %	rP   r   r   r   s   @rQ   r   r      s     rP   r   c                        e Zd Zd fdZ xZS )Successc                4    t         |   ||       d| _        y Nsuccessr   r   s      rQ   r`   zSuccess.__init__)  r   rP   r   r   r   s   @rQ   r   r   '  r   rP   r   c                       e Zd ZU dZded<    ed      Zded<   ded	<   ded
<   ded<   d fdZedd       Z	edd       Z
ddZddZ xZS )r/   z@A representation of ``st.button`` and ``st.form_submit_button``.r   r   FrS   ButtonProtorW   rU   labelhelpform_idc                B    t         |   ||       d| _        d| _        y )NFbuttonr   r`   r   rV   r   s      rQ   r`   zButton.__init__9  s     %	rP   c                ^    t               }| j                  |_        | j                  |_        |S r]   )r(   r   r   trigger_valuer_   wss     rQ   r   zButton._widget_state>  s%    ];;	rP   c                    | j                   r| j                   S | j                  j                  }|sJ t        d|t           | j
                           S )zThe value of the button. (bool)r   )r   rY   r   r   r*   r   r   s     rQ   re   zButton.valueE  sF     ;;;;		''uFE+.tww788rP   c                    || _         | S )zSet the value of the button.r   r   s     rQ   r   zButton.set_valueN  r   rP   c                $    | j                  d      S )z$Set the value of the button to True.Tr   rb   s    rQ   clickzButton.clickS      ~~d##rP   )rW   r   rY   rX   rx   ry   r   rx   r   )r   r   rx   r/   )rx   r/   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r   r   r   r   s   @rQ   r/   r/   .  s`    JLE*E;*J
IL
   9 9
$rP   r/   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d fd
ZddZe	dd       Z
e	dd       Z xZS )r1   z&A representation of ``st.chat_input``.rZ   r   FrS   ChatInputProtorW   rU   placeholderc                4    t         |   ||       d| _        y N
chat_inputr   r   s      rQ   r`   zChatInput.__init__`  s    % 	rP   c                    || _         | S r   r   r   s     rQ   r   zChatInput.set_valued  r   rP   c                    t               }| j                  |_        | j                  | j                  |j                  _        |S r]   )r(   r   r   string_trigger_valuedatar   s     rQ   r   zChatInput._widget_statei  s5    ];;"+/;;B##(	rP   c                    | j                   r| j                   S | j                  j                  }|sJ |t           | j                     S )zThe value of the widget. (str))r   rY   r   r*   r   r   s     rQ   re   zChatInput.valueq  s?     ;;;;		''u[!$''**rP   )rW   r  rY   rX   rx   ry   )r   rZ   rx   r1   r   rx   rZ   rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   r   r   s   @rQ   r1   r1   X  sS    0!u-E>-!
   + +rP   r1   c                       e Zd ZU dZded<    ed      Zded<   ded	<   ded
<   ded<   d fdZedd       Z	edd       Z
ddZddZddZ xZS )r%   z$A representation of ``st.checkbox``.bool | Noner   FrS   CheckboxProtorW   rU   r   r   r   c                4    t         |   ||       d| _        y Ncheckboxr   r   s      rQ   r`   zCheckbox.__init__  s    %	rP   c                ^    t               }| j                  |_        | j                  |_        |S r]   r(   r   re   
bool_valuer   s     rQ   r   zCheckbox._widget_state  $    ]

	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S )zThe value of the widget. (bool)r   r   rY   r   r   r   r   s     rQ   re   zCheckbox.value  C     ;;";;		''uFE$''N++rP   c                    || _         | S r   r   r   s     rQ   r   zCheckbox.set_value  r   rP   c                $    | j                  d      S )z$Set the value of the widget to True.Tr   rb   s    rQ   checkzCheckbox.check  r   rP   c                $    | j                  d      S )z%Set the value of the widget to False.Fr   rb   s    rQ   uncheckzCheckbox.uncheck  s    ~~e$$rP   rW   r  rY   rX   rx   ry   r   r   )r   r   rx   r%   )rx   r%   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r   r  r  r   r   s   @rQ   r%   r%   {  sf    . e,E=,J
IL   , ,
$%rP   r%   c                  f    e Zd ZU dZ ed      Zded<   ded<   ded	<   d
ed<   ddZedd       Z	y)r2   z A representation of ``st.code``.FrS   	CodeProtorW   rU   languager   show_line_numbersry   r[   c                <    || _         d | _        || _        d| _        y NcoderW   r[   rY   rV   r^   s      rQ   r`   zCode.__init__      
		rP   c                .    | j                   j                  S zThe value of the element. (str))rW   	code_textrb   s    rQ   re   z
Code.value  s     zz###rP   N)rW   r"  rY   rX   rx   ry   r|   )
rK   rL   rM   rN   r
   rW   r}   r`   r~   re   rO   rP   rQ   r2   r2     s=    *%(E9(M	I $ $rP   r2   c                       e Zd ZU dZded<   ded<   ded<   ded<    ed	      Zd
ed<   d fdZedd       Z	edd       Z
ddZddZ xZS )r3   z(A representation of ``st.color_picker``.rZ   r   rU   r   r   r   FrS   ColorPickerProtorW   c                4    t         |   ||       d| _        y Ncolor_pickerr   r   s      rQ   r`   zColorPicker.__init__  s    %"	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S )z3The currently selected value as a hex string. (str)rU   r  r   s     rQ   re   zColorPicker.value  sC     ;;";;		''uE5>**rP   c                ^    t               }| j                  |_        | j                  |_        |S )Protobuf message representing the state of the widget, including
        any interactions that have happened.
        Should be the same as the frontend would produce for those interactions.
        r(   r   re   string_valuer   s     rQ   r   zColorPicker._widget_state  s&     ]**	rP   c                    || _         | S )z,Set the value of the widget as a hex string.r   r   s     rQ   r   zColorPicker.set_value  r   rP   c                P    |j                  d      sd| }| j                  |      S )zESet the value of the widget as a hex string. May omit the "#" prefix.#)
startswithr   r   s     rQ   pickzColorPicker.pick  s(    ||C A3A~~a  rP   )rW   r.  rY   rX   rx   ry   r|   r   )r   rU   rx   r3   )rK   rL   rM   rN   r}   r
   rW   r`   r~   re   r   r   r;  r   r   s   @rQ   r3   r3     sb    2J
IL#/E/# + +  
!rP   r3   c                  D    e Zd ZU  ed      Zded<   ddZed	d       Zy)
	DataframeFrS   
ArrowProtorW   c                <    d | _         || _        || _        d| _        y Narrow_data_framer[   rW   rY   rV   r^   s      rQ   r`   zDataframe.__init__  s    
	&	rP   c                T    t        j                  | j                  j                        S r]   r    convert_arrow_bytes_to_pandas_dfrW   r
  rb   s    rQ   re   zDataframe.value      >>tzzOOrP   NrW   r>  rY   rX   rx   ry   rx   PandasDataframer   rO   rP   rQ   r=  r=    s,    5)E:)' P PrP   r=  r   SingleDateValue	DateValuec                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       Z xZS )r4   z&A representation of ``st.date_input``.zDateValue | InitialValue | Noner   FrS   DateInputProtorW   rU   r   r   minmaxr   is_ranger   r   c                   t         |   ||       t               | _        d| _        t        j                  |j                  d      j                         | _        t        j                  |j                  d      j                         | _	        y )N
date_inputz%Y/%m/%d)
r   r`   rJ   r   rV   r   strptimerN  r   rO  r   s      rQ   r`   zDateInput.__init__  sd    %"n 	$$UYY
;@@B$$UYY
;@@BrP   c                    || _         | S r   r   r   s     rQ   r   zDateInput.set_value  r   rP   c                    t               }| j                  |_        t        d       }|j                  | j                        |j
                  j                  d d  |S r]   )r(   r   r   	serializere   string_array_valuer
  )r_   r   serdes      rQ   r   zDateInput._widget_state  sF    ]t$(-

(C""1%	rP   c                    t        | j                  t              s't        | j                        \  }}|t	        |      S dS | j
                  j                  }|sJ || j                     S )z0The value of the widget. (date or Tuple of date)N)r   r   rJ   r#   r   rY   r   r   )r_   parsed_r   s       rQ   re   zDateInput.value"  s\     $++|4)$++6IFA$*$65=@D@		''uTWW~rP   )rW   rM  rY   rX   rx   ry   )r   rK  rx   r4   r   )rx   r!   r  r   s   @rQ   r4   r4      sl    0++!u-E>-J	I	IN
ILC
    rP   r4   c                  P    e Zd ZU ded<   ded<   ded<   ded<   ddZedd	       Zy
)r7   rU   messager   is_markdown	list[str]stack_trace
is_warningc                    d | _         || _        || _        d| _        |j                  | _        t        |j                        | _        y N	exception)r[   rY   rW   rV   message_is_markdownr^  listr`  r^   s      rQ   r`   zException.__init__4  s?    	
	 44 1 12rP   c                    | j                   S r]   )r]  rb   s    rQ   re   zException.value=  s    ||rP   N)rW   ExceptionProtorY   rX   rx   ry   r|   rK   rL   rM   r}   r`   r~   re   rO   rP   rQ   r7   r7   -  s2    L3  rP   r7   c                  l    e Zd ZU  ed      Zded<   ded<   ded<   d	ed
<   ded<   ddZedd       Zy)HeadingBaseFrS   HeadingProtorW   rU   tagrZ   anchorr   hide_anchorry   r[   c                <    || _         d | _        || _        || _        y r]   r(  )r_   rW   rY   type_s       rQ   r`   zHeadingBase.__init__K  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zHeadingBase.valueQ  r   rP   N)rW   rl  rY   rX   rq  rU   rx   ry   r|   r   rO   rP   rQ   rk  rk  B  s@    U+E<+	H	I  rP   rk  c                        e Zd Zd fdZ xZS )Headerc                (    t         |   ||d       y Nheaderr   r`   r   s      rQ   r`   zHeader.__init__X  s    h/rP   rW   rl  rY   rX   rx   ry   r   r   s   @rQ   rt  rt  V  s    0 0rP   rt  c                        e Zd Zd fdZ xZS )	Subheaderc                (    t         |   ||d       y N	subheaderrx  r   s      rQ   r`   zSubheader.__init__^  s    k2rP   ry  r   r   s   @rQ   r{  r{  \  s    3 3rP   r{  c                        e Zd Zd fdZ xZS )Titlec                (    t         |   ||d       y Ntitlerx  r   s      rQ   r`   zTitle.__init__d  s    g.rP   ry  r   r   s   @rQ   r  r  b  s    / /rP   r  c                  N    e Zd ZU  ed      Zded<   ded<   d
dZedd       Zy	)r:   FrS   	JsonProtorW   r   expandedc                <    || _         d | _        || _        d| _        y Njsonr(  r^   s      rQ   r`   zJson.__init__n  r)  rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   z
Json.valuet  r   rP   N)rW   r  rY   rX   rx   ry   r|   r   rO   rP   rQ   r:   r:   h  s/    %(E9(N  rP   r:   c                  b    e Zd ZU  ed      Zded<   ded<   ded<   ded	<   dd
Zedd       Zy)r&   FrS   MarkdownProtorW   r   
is_caption
allow_htmlry   r[   c                <    || _         d | _        || _        d| _        y Nmarkdownr(  r^   s      rQ   r`   zMarkdown.__init__  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zMarkdown.value  r   rP   NrW   r  rY   rX   rx   ry   r|   r   rO   rP   rQ   r&   r&   y  s;     e,E=,	I  rP   r&   c                        e Zd Zd fdZ xZS )Captionc                4    t         |   ||       d| _        y Ncaptionr   r   s      rQ   r`   zCaption.__init__  r   rP   r  r   r   s   @rQ   r  r    r   rP   r  c                        e Zd Zd fdZ xZS )Dividerc                4    t         |   ||       d| _        y Ndividerr   r   s      rQ   r`   zDivider.__init__  r   rP   r  r   r   s   @rQ   r  r    r   rP   r  c                        e Zd Zd fdZ xZS )Latexc                4    t         |   ||       d| _        y Nlatexr   r   s      rQ   r`   zLatex.__init__  r   rP   r  r   r   s   @rQ   r  r    r   rP   r  c                  D    e Zd ZU dZ ed      Zded<   dZded<   d
d	Zy)r@   z)A representation of st.space for testing.FrS   
SpaceProtorW   Nry   r[   c                .    || _         || _        d| _        y )NspacerW   rY   rV   r^   s      rQ   r`   zSpace.__init__  s    
		rP   )rW   r  rY   rX   rx   ry   )	rK   rL   rM   rN   r
   rW   r}   r[   r`   rO   rP   rQ   r@   r@     s#    35)E:)CrP   r@   c                  Z    e Zd ZU ded<   ded<   ded<   ded<   ded<   ddZedd	       Zy
)r;   MetricProtorW   rU   r   deltacolorr   c                <    || _         d | _        || _        d| _        y Nmetricr(  r^   s      rQ   r`   zMetric.__init__  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zMetric.value  r   rP   N)rW   r  rY   rX   rx   ry   r|   ri  rO   rP   rQ   r;   r;     s5    JJJ
I  rP   r;   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   d fdZedd       Z	edd       Z
edd       Zedd       ZddZddZddZ xZS )r0   zAA representation of button_group that is used by ``st.feedback``.list[T] | Noner   FrS   ButtonGroupProtorW   zlist[ButtonGroupProto.Option]optionsrU   r   c                h    t         |   ||       d| _        t        |j                        | _        y Nbutton_groupr   r`   rV   rf  r  r   s      rQ   r`   zButtonGroup.__init__  s)    %"	EMM*rP   c                    t               }| j                  |_        | j                  |j                  j                  dd |S r4  N)r(   r   indicesint_array_valuer
  r   s     rQ   r   zButtonGroup._widget_state  s5     ]%)\\"	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S 6The currently selected values from the options. (list)list[T]r  r   s     rQ   re   zButtonGroup.value  C     ;;";;		''uIuTWW~..rP   c                    | j                   D cg c],  }| j                  j                  | j                  |            . c}S c c}w zEThe indices of the currently selected values from the options. (list)re   r  indexformat_funcr   s     rQ   r  zButtonGroup.indices  <     BFLA""4#3#3A#67LLL   1Ac                n    | j                   j                  }t        d|t           | j                           S zCThe widget's formatting function for displaying options. (callable)Callable[[Any], Any]rY   r   r   r*   r   r_   sss     rQ   r  zButtonGroup.format_func  .     YY$$*B{ODGG,DEErP   c                    || _         | S z/Set the value of the multiselect widget. (list)r   r   s     rQ   r   zButtonGroup.set_value       rP   c                    | j                   }||v r| S |j                         }|j                  |       | j                  |       | S z
        Add a selection to the widget. Do nothing if the value is already selected.        If testing a multiselect widget with repeated options, use ``set_value``        instead.
        re   copyappendr   r_   r   currentnews       rQ   selectzButtonGroup.select  @     **<Klln

1srP   c                    | j                   }||vr| S |j                         }||v r|j                  |       ||v r| j                  |       | S z
        Remove a selection from the widget. Do nothing if the value is not        already selected. If a value is selected multiple times, the first        instance is removed.
        re   r  remover   r  s       rQ   unselectzButtonGroup.unselect  Q     **GKlln3hJJqM 3hsrP   )rW   r  rY   rX   rx   ry   r   rx   r  rx   zSequence[int]rx   r  )r   r  rx   ButtonGroup[T])r   rH   rx   r  )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r  r  r   r  r  r   r   s   @rQ   r0   r0     s    K#/E/**L+
   / / M M F F
rP   r0   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZedd       Z	edd       Z
edd       Zedd       Zedd       ZddZd dZd dZ xZS )!Multiselectz'A representation of ``st.multiselect``.r  r   FrS   MultiSelectProtorW   rU   r   r_  r  r   max_selectionsr   r   c                h    t         |   ||       d| _        t        |j                        | _        y Nmultiselectr  r   s      rQ   r`   zMultiselect.__init__!  s)    %!	EMM*rP   c                    t               }| j                  |_        | j                  |j                  j                  dd |S r  )r(   r   r   rW  r
  r   s     rQ   r   zMultiselect._widget_state&  s5     ](,""1%	rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S r  r  r   s     rQ   re   zMultiselect.value1  r  rP   c                    | j                   D cg c],  }| j                  j                  | j                  |            . c}S c c}w r  r  r   s     rQ   r  zMultiselect.indices:  r  r  c                ^    | j                   D cg c]  }| j                  |       c}S c c}w )r  )re   r  r   s     rQ   r   zMultiselect.values?  s+     .2ZZ8Z  #Z888s   *c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zMultiselect.format_funcD  r  rP   c                    || _         | S r  r   r   s     rQ   r   zMultiselect.set_valueJ  r  rP   c                    | j                   }||v r| S |j                         }|j                  |       | j                  |       | S r  r  r  s       rQ   r  zMultiselect.selectP  r  rP   c                    | j                   }||vr| S |j                         }||v r|j                  |       ||v r| j                  |       | S r  r  r  s       rQ   r  zMultiselect.unselect^  r  rP   )rW   r  rY   rX   rx   ry   r   r  r  )rx   zSequence[str]r  )r   r  rx   Multiselect[T])r   rH   rx   r  )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r  r   r  r   r  r  r   r   s   @rQ   r  r    s    1#/E/J
IL+
   / / M M 9 9 F F
rP   r  Numberc                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZddZ xZS )r=   z(A representation of ``st.number_input``.zNumber | InitialValue | Noner   FrS   NumberInputProtorW   rU   r   Number | NonerN  rO  r  stepr   r   c                    t         |   ||       t               | _        d| _        |j
                  r|j                  nd | _        |j                  r|j                  | _        y d | _        y Nnumber_input)	r   r`   rJ   r   rV   has_minrN  has_maxrO  r   s      rQ   r`   zNumberInput.__init__~  sL    %"n"	 %5994 %5994rP   c                    || _         | S )z0Set the value of the ``st.number_input`` widget.r   r   s     rQ   r   zNumberInput.set_value  r   rP   c                v    t               }| j                  |_        | j                  | j                  |_        |S r]   )r(   r   re   double_valuer   s     rQ   r   zNumberInput._widget_state  .    ]::!"jjBO	rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S )z8Get the current value of the ``st.number_input`` widget.r   r   rJ   rY   r   r   r   s     rQ   re   zNumberInput.value  sB     $++|4;;		''u TWW~rP   c                    | j                   | S t        | j                   | j                  z   | j                  xs t	        d            }| j                  |      S )zDIncrement the ``st.number_input`` widget as if the user clicked "+".inf)re   rN  r  rO  floatr   r   s     rQ   	incrementzNumberInput.increment  sF    ::K

TYY&(@E%LA~~a  rP   c                    | j                   | S t        | j                   | j                  z
  | j                  xs t	        d            }| j                  |      S )zDDecrement the ``st.number_input`` widget as if the user clicked "-".z-inf)re   rO  r  rN  r  r   r   s     rQ   	decrementzNumberInput.decrement  sF    ::K

TYY&(AE&MB~~a  rP   )rW   r  rY   rX   rx   ry   )r   r  rx   r=   r   )rx   r  )rx   r=   rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   r	  r  r   r   s   @rQ   r=   r=   q  sx    2((#/E/J		
L
IL8
    !!rP   r=   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZedd       Z	edd       Z
edd       ZddZedd       Z xZS )r>   z!A representation of ``st.radio``.T | InitialValue | Noner   FrS   
RadioProtorW   rU   r   r_  r  r   
horizontalr   r   c                    t         |   ||       t               | _        d| _        t        |j                        | _        y Nradior   r`   rJ   r   rV   rf  r  r   s      rQ   r`   zRadio.__init__  s2    %"n	EMM*rP   c                    | j                   y| j                  j                  | j                  | j                               S ))The index of the current selection. (int)Nr  rb   s    rQ   r  zRadio.index  s5     ::||!!$"2"24::">??rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ t        d|| j                           S z4The currently selected value from the options. (Any)rH   r   r   rJ   rY   r   r   r   r   s     rQ   re   zRadio.value  G     $++|4;;		''uCtww((rP   c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zRadio.format_func  r  rP   c                    || _         | S zSet the selection by value.r   r   s     rQ   r   zRadio.set_value  r   rP   c                    t               }| j                  |_        | j                  6t        | j                        dkD  r| j                  | j                     |_        |S r4  r   r(   r   r  r   r  r6  r   s     rQ   r   zRadio._widget_state  I     ]::!c$,,&7!&;"ll4::6BO	rP   )rW   r  rY   rX   rx   ry   rx   
int | Nonerx   T | Noner  )r   r%  rx   zRadio[T]r   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r  re   r  r   r   r   r   s   @rQ   r>   r>     s    +##5)E:)J
IL+ @ @ ) ) F F

 	 	rP   r>   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   d fdZedd       Z	edd       Z
edd       ZddZddZddZedd       Z xZS )r?   z%A representation of ``st.selectbox``.r  r   FrS   SelectboxProtorW   rU   r   r_  r  r   r   c                    t         |   ||       t               | _        d| _        t        |j                        | _        y N	selectboxr  r   s      rQ   r`   zSelectbox.__init__  s2    %"n	EMM*rP   c                    | j                   yt        | j                        dk(  ry| j                  j                  | j	                  | j                               S )r  Nr   )re   r   r  r  r  rb   s    rQ   r  zSelectbox.index  sI     ::t||!||!!$"2"24::">??rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ t        d|| j                           S r  r  r   s     rQ   re   zSelectbox.value  r  rP   c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zSelectbox.format_func  r  rP   c                    || _         | S r  r   r   s     rQ   r   zSelectbox.set_value  r   rP   c                $    | j                  |      S r  r   r   s     rQ   r  zSelectbox.select  s    ~~a  rP   c                x    || j                  d      S | j                  t        d| j                  |               S )zSet the selection by index.NrH   )r   r   r  )r_   r  s     rQ   select_indexzSelectbox.select_index  s5    =>>$''~~d3U(;<==rP   c                    t               }| j                  |_        | j                  6t        | j                        dkD  r| j                  | j                     |_        |S r  r   r   s     rQ   r   zSelectbox._widget_state#  r!  rP   )rW   r'  rY   rX   rx   ry   r"  r$  r  )r   r%  rx   Selectbox[T])r  r#  rx   r3  r   )rK   rL   rM   rN   r}   r
   rW   r`   r~   r  re   r  r   r  r1  r   r   r   s   @rQ   r?   r?     s    /##!u-E>-J
IL+ @ @ ) ) F F

!> 	 	rP   r?   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       Ze	dd       ZddZ xZS )SelectSliderz)A representation of ``st.select_slider``.zT | Sequence[T] | Noner   FrS   SliderProtorW   rU   r   SliderProto.DataType.ValueType	data_typer_  r  r   r   c                h    t         |   ||       d| _        t        |j                        | _        y Nselect_sliderr  r   s      rQ   r`   zSelectSlider.__init__=  s)    %#	EMM*rP   c                    || _         | S )z$Set the (single) selection by value.r   r   s     rQ   r   zSelectSlider.set_valueB  r   rP   c                   | j                   }t        | j                        D ci c]  \  }} ||      | }}}t        | j                  t
        t        f      xr t        | j                        dk(  }t        | j                  ||sdgndt        | j                        dz
  g|      }	 |r%|j                  t        | j                              }n|j                  | j                        }t               }	| j                  |	_        ||	j                  j                  d d  |	S c c}}w # t        t        f$ r}t        d| j                         |d }~ww xY w)N   r      )formatted_option_to_indexdefault_indicesr  zCould not serialize value )r  	enumerater  r   re   rf  r   r   r   rV  r   	TypeErrorr(   r   rW  r
  )
r_   r  r   optr@  rP  rX  r   r   r   s
             rQ   r   zSelectSlider._widget_stateG  s7    &&2;DLL2I%
2Ihc3Kc!2I 	" %

 djj4-8QS_PQ=Q!LL&?'/QCaT\\9JQ9N5O#	
	OOOE$**$56OODJJ/ ]()""1%	3%
& I& 	O9$**FGQN	Os   D$,AD* *E9EEc                    | j                   | j                   S | j                  j                  }|sJ || j                     S z?The currently selected value or range. (Any or Sequence of Any)r   rY   r   r   r   s     rQ   re   zSelectSlider.valuef  <     ;;";;		''uTWW~rP   c                n    | j                   j                  }t        d|t           | j                           S r  r  r  s     rQ   r  zSelectSlider.format_funcp  r  rP   c                (    | j                  ||g      S )z#Set the ranged selection by values.r   r_   loweruppers      rQ   	set_rangezSelectSlider.set_rangev  s    ~~uen--rP   rW   r6  rY   rX   rx   ry   )r   T | Sequence[T]rx   SelectSlider[T]r   )rx   rP  r  )rL  rH   rM  rH   rx   rQ  )rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   r  rN  r   r   s   @rQ   r5  r5  0  s    3""E*E;*J--
IL+

  <   F F
.rP   r5  SliderValueTc                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   d fdZ	 	 	 	 ddZe	dd       Z
e	dd       Z	 	 	 	 	 	 ddZ xZS )r'   z"A representation of ``st.slider``.z,SliderValueT | Sequence[SliderValueT] | Noner   FrS   r6  rW   rU   r   r7  r8  rR  rN  rO  r   r  r   r   c                4    t         |   ||       d| _        y Nsliderr   r   s      rQ   r`   zSlider.__init__  s    %	rP   c                    || _         | S )z%Set the (single) value of the slider.r   r   s     rQ   r   zSlider.set_value  s     rP   c                    | j                   j                  }t        g |dd       }|j                  | j                        }t               }| j                  |_        ||j                  j                  d d  |S )NT)	rW   r8  r   rV  re   r(   r   double_array_valuer
  )r_   r8  rX  r   r   s        rQ   r   zSlider._widget_state  s`    JJ((	B	46OODJJ']()""1%	rP   c                    | j                   | j                   S | j                  j                  }|sJ || j                     S rF  rG  r   s     rQ   re   zSlider.value  rH  rP   c                (    | j                  ||g      S )z#Set the ranged value of the slider.r   rK  s      rQ   rN  zSlider.set_range  s     ~~uen--rP   rO  )r   %SliderValueT | Sequence[SliderValueT]rx   Slider[SliderValueT]r   )rx   r\  )rL  rR  rM  rR  rx   r]  )rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   rN  r   r   s   @rQ   r'   r'   ~  s    ,88E*E;*J--		

IL6	    .!.*6.	.rP   r'   c                  D    e Zd ZU  ed      Zded<   ddZed	d       Zy)
TableFrS   r>  rW   c                <    d | _         || _        || _        d| _        y Narrow_tablerB  r^   s      rQ   r`   zTable.__init__  s    
	!	rP   c                T    t        j                  | j                  j                        S r]   rD  rb   s    rQ   re   zTable.value  rF  rP   NrG  rH  r   rO   rP   rQ   r_  r_    s,    5)E:)" P PrP   r_  c                  R    e Zd ZU  ed      Zded<   dZded<   d
dZedd	       Z	y)rA   FrS   	TextProtorW   Nry   r[   c                .    || _         || _        d| _        y Ntextr  r^   s      rQ   r`   zText.__init__  s    
		rP   c                .    | j                   j                  S r+  r   rb   s    rQ   re   z
Text.value  s     zzrP   )rW   re  rY   rX   rx   ry   r|   )
rK   rL   rM   r
   rW   r}   r[   r`   r~   re   rO   rP   rQ   rA   rA     s4    %(E9(C
  rP   rA   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZ xZS )rB   z%A representation of ``st.text_area``.str | InitialValue | Noner   FrS   TextAreaProtorW   rU   r   r   	max_charsr  r   r   c                R    t         |   ||       t               | _        d| _        y N	text_arear   r`   rJ   r   rV   r   s      rQ   r`   zTextArea.__init__  s"    %"n	rP   c                    || _         | S r   r   r   s     rQ   r   zTextArea.set_value  r   rP   c                v    t               }| j                  |_        | j                  | j                  |_        |S r]   r5  r   s     rQ   r   zTextArea._widget_state  r  rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S z&The current value of the widget. (str)r  r   s     rQ   re   zTextArea.value  @     $++|4;;		''uTWW~rP   c                p    | j                   rt        |      | j                   kD  r| S | j                  |      S zv
        Set the value of the widget only if the value does not exceed the        maximum allowed characters.
        rm  r   r   r   s     rQ   inputzTextArea.input  .     >>c!ft~~5K~~a  rP   )rW   rl  rY   rX   rx   ry   )r   rZ   rx   rB   r   r  )r   rU   rx   rB   rK   rL   rM   rN   r}   r
   rW   r`   r   r~   r   re   rz  r   r   s   @rQ   rB   rB     sl    /%% e,E=,JN
IL 

    !rP   rB   c                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZ xZS )rC   z&A representation of ``st.text_input``.rk  r   FrS   TextInputProtorW   rU   r   r   rm  autocompleter  r   r   c                R    t         |   ||       t               | _        d| _        y N
text_inputrq  r   s      rQ   r`   zTextInput.__init__  "    %"n 	rP   c                    || _         | S r   r   r   s     rQ   r   zTextInput.set_value  r   rP   c                v    t               }| j                  |_        | j                  | j                  |_        |S r]   r5  r   s     rQ   r   zTextInput._widget_state  r  rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S ru  r  r   s     rQ   re   zTextInput.value'  rv  rP   c                p    | j                   rt        |      | j                   kD  r| S | j                  |      S rx  ry  r   s     rQ   rz  zTextInput.input1  r{  rP   )rW   r~  rY   rX   rx   ry   )r   rZ   rx   rC   r   r  )r   rU   rx   rC   r|  r   s   @rQ   rC   rC     sr    0%%!u-E>-JN
IL!

    !rP   rC   	TimeValueDateTimeWidgetValuec                       e Zd ZU dZded<    ed      Zded<   ded	<   d
ed<   ded<   ded<   d fdZddZe	dd       Z
e	dd       ZddZddZ xZS )rD   z&A representation of ``st.time_input``.zTimeValue | InitialValue | Noner   FrS   TimeInputProtorW   rU   r   r   r  r   r   c                R    t         |   ||       t               | _        d| _        y N
time_inputrq  r   s      rQ   r`   zTimeInput.__init__K  r  rP   c                    || _         | S r   r   r   s     rQ   r   zTimeInput.set_valueP  r   rP   c                    t               }| j                  |_        t        d       }|j                  | j                        }|||_        |S r]   )r(   r   r"   rV  re   r6  )r_   r   rX  serialized_values       rQ   r   zTimeInput._widget_stateU  sC    ]t$ ??4::6'.BO	rP   c                    t        | j                  t              s.| j                  }t        |t              r|j	                         S |S | j
                  j                  }|sJ || j                     S )z'The current value of the widget. (time))r   r   rJ   r   r   rY   r   r   )r_   r   r   s      rQ   re   zTimeInput.value`  sY     $++|4A)!X61668=A=		''uTWW~rP   c                    | j                   | S t        j                  t        j                         | j                         t        | j                        z   }| j                  |j                               S )zSelect the next available time.seconds	re   r   combiner   todayr   r  r   r   r_   dts     rQ   r	  zTimeInput.incrementj  P    ::KdjjlDJJ7)DII:VV~~bggi((rP   c                    | j                   | S t        j                  t        j                         | j                         t        | j                        z
  }| j                  |j                               S )z#Select the previous available time.r  r  r  s     rQ   r  zTimeInput.decrementq  r  rP   )rW   r  rY   rX   rx   ry   )r   zTimeValue | Nonerx   rD   r   )rx   ztime | None)rx   rD   r  r   s   @rQ   rD   rD   @  sk    0++!u-E>-J
I
IL!

    ))rP   rD   c                       e Zd ZU dZded<    ed      Zded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   d fdZddZe	dd       Z
e	dd       Z xZS )r5   z*A representation of ``st.datetime_input``.z)DateTimeWidgetValue | InitialValue | Noner   FrS   DateTimeInputProtorW   rU   r   formatrN  rO  r   r  r   r   c                R    t         |   ||       t               | _        d| _        y Ndate_time_inputrq  r   s      rQ   r`   zDateTimeInput.__init__  s"    %"n%	rP   c                    || _         | S r   r   r   s     rQ   r   zDateTimeInput.set_value  r   rP   c                H   ddl m } d}t               }| j                  |_         |j                  | j                  |      } |j                  | j
                  |      }t        d ||      }|j                  | j                        }|||j                  j                  d d  |S )Nr   )r   z%Y/%m/%d, %H:%M)re   rN  rO  )r   r(   r   rS  rN  rO  r    rV  re   rW  r
  )r_   r   datetime_ui_formatr   min_dtmax_dtrX  r  s           rQ   r   zDateTimeInput._widget_state  s    %.] #""488-?@"""488-?@"6vF ??4::6',<B!!&&q)	rP   c                    t        | j                  t              s| j                  S | j                  j                  }|sJ || j
                     S )z+The current value of the widget. (datetime)r  r   s     rQ   re   zDateTimeInput.value  s@     $++|4;;		''uTWW~rP   )rW   r  rY   rX   rx   ry   )r   zDateTimeWidgetValue | Nonerx   r5   r   )rx   zdatetime | Noner  r   s   @rQ   r5   r5   y  sq    455 %5 1E1JK	H	H
I
IL&

  $  rP   r5   c                  N    e Zd ZU  ed      Zded<   ded<   d
dZedd       Zy	)rE   FrS   
ToastProtorW   rU   r   c                <    || _         d | _        || _        d| _        y Ntoastr(  r^   s      rQ   r`   zToast.__init__  s    
		rP   c                .    | j                   j                  S r]   r   rb   s    rQ   re   zToast.value  r   rP   N)rW   r  rY   rX   rx   ry   r|   r   rO   rP   rQ   rE   rE     s/    5)E:)
I  rP   rE   c                       e Zd ZU dZded<    ed      Zded<   ded	<   ded
<   ded<   d fdZedd       Z	edd       Z
ddZ xZS )Togglez"A representation of ``st.toggle``.r  r   FrS   r  rW   rU   r   r   r   c                B    t         |   ||       d | _        d| _        y Ntoggler   r   s      rQ   r`   zToggle.__init__  s     %	rP   c                ^    t               }| j                  |_        | j                  |_        |S r]   r  r   s     rQ   r   zToggle._widget_state  r  rP   c                    | j                   | j                   S | j                  j                  }|sJ t        d|| j                           S )z'The current value of the widget. (bool)r   r  r   s     rQ   re   zToggle.value  r  rP   c                    || _         | S r   r   r   s     rQ   r   zToggle.set_value  r   rP   r   r   r   )r   r   rx   r  )rK   rL   rM   rN   r}   r
   rW   r`   r~   r   re   r   r   r   s   @rQ   r  r    s\    , e,E=,J
IL
   , ,rP   r  c                     e Zd ZU dZded<   ded<    ed      Zded	<    ed      Zd
ed<   	 	 	 	 	 	 d?dZd@dZ	dAdZ
dBdZedCd       ZedDd       ZedEd       ZedFd       ZedGd       ZedHd       ZedId       ZedJd       ZedKd       ZedLd       ZedMd       ZedNd       ZedOd       ZedPd       ZedQd       ZedRd       ZedSd        ZedTd!       ZedUd"       ZedVd#       Z edWd$       Z!edXd%       Z"edYd&       Z#edZd'       Z$ed[d(       Z%ed\d)       Z&ed]d*       Z'ed^d+       Z(ed_d,       Z)ed`d-       Z*edad.       Z+edbd/       Z,edcd0       Z-eddd1       Z.eded2       Z/edfd3       Z0edgd4       Z1edhd5       Z2edid6       Z3edjd7       Z4edkd8       Z5edld9       Z6dmd:Z7d;d<dnd=Z8dod>Z9y;)pr.   ad  A container of other elements.

    Elements within a Block can be inspected and interacted with. This follows
    the same syntax as inspecting and interacting within an ``AppTest`` object.

    For all container classes, parameters of the original element can be
    obtained as properties. For example, ``ChatMessage.avatar`` and
    ``Tab.label``.
    rU   rV   zdict[int, Node]childrenFrS   r   rW   rX   rY   c                    i | _         || _        |r1|j                  d      }||| _        || _        y d| _        || _        y d| _        || _        y )NrV   	containerunknown)r  rW   r   rV   rY   r   s       rQ   r`   zBlock.__init__  s\    
 
!!&)B~	 	 (	 	 "DI	rP   c                ,    t        | j                        S r]   )r   r  rb   s    rQ   r   zBlock.__len__  s    4==!!rP   c              #  h   K   |  | j                   D ]  }| j                   |   E d {     y 7 wr]   r  )r_   	child_idxs     rQ   rc   zBlock.__iter__
  s.     
I}}Y/// '/s   &202c                     | j                   |   S r]   r  )r_   ks     rQ   r   zBlock.__getitem__  s    }}QrP   c                     y r]   rO   rb   s    rQ   r[   z	Block.key  s    rP   c                6    t        | j                  d            S )Nr   r   getrb   s    rQ   r   zBlock.button      $((8,--rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.button_group      $((>233rP   c                6    t        | j                  d            S r  r   r  rb   s    rQ   r  zBlock.caption       488I.//rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.chat_input$      $((<011rP   c                $    | j                  d      S Nchat_messager  rb   s    rQ   r  zBlock.chat_message(  s    xx''rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.checkbox,  s    $((:.//rP   c                6    t        | j                  d            S r&  r  rb   s    rQ   r'  z
Block.code0      488F+,,rP   c                6    t        | j                  d            S r0  r  rb   s    rQ   r1  zBlock.color_picker4  r  rP   c                $    | j                  d      S Ncolumnr  rb   s    rQ   columnszBlock.columns8      xx!!rP   c                6    t        | j                  d            S r@  r  rb   s    rQ   	dataframezBlock.dataframe<  s    488$6788rP   c                6    t        | j                  d            S )NrR  r  rb   s    rQ   rR  zBlock.date_input@  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   datetime_inputzBlock.datetime_inputD  s    $((#4566rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.dividerH  r  rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   zBlock.errorL      488G,--rP   c                6    t        | j                  d            S rc  r  rb   s    rQ   rd  zBlock.exceptionP      488K011rP   c                $    | j                  d      S Nexpanderr  rb   s    rQ   r  zBlock.expanderT  s    xx
##rP   c                6    t        | j                  d            S rv  r  rb   s    rQ   rw  zBlock.headerX      488H-..rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   z
Block.info\  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  z
Block.json`  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.latexd  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.markdownh  s    488J/00rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.metricl  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.multiselectp  s    $((=122rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.number_inputt  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.radiox  s    $((7+,,rP   c                6    t        | j                  d            S r:  r  rb   s    rQ   r;  zBlock.select_slider|  s    $((?344rP   c                6    t        | j                  d            S r)  r  rb   s    rQ   r*  zBlock.selectbox      $((;/00rP   c                6    t        | j                  d            S rU  r  rb   s    rQ   rV  zBlock.slider  r  rP   c                $    | j                  d      S Nstatusr  rb   s    rQ   r  zBlock.status  r  rP   c                6    t        | j                  d            S r}  r  rb   s    rQ   r~  zBlock.subheader  r  rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   zBlock.success  r  rP   c                6    t        | j                  d            S ra  r  rb   s    rQ   tablezBlock.table  s    488M233rP   c                $    | j                  d      S Ntabr  rb   s    rQ   tabsz
Block.tabs  s    xxrP   c                6    t        | j                  d            S rg  r  rb   s    rQ   rh  z
Block.text  r  rP   c                6    t        | j                  d            S ro  r  rb   s    rQ   rp  zBlock.text_area  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.text_input  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.time_input  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.title  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.toast  r  rP   c                6    t        | j                  d            S r  r  rb   s    rQ   r  zBlock.toggle  r  rP   c                6    t        | j                  d            S r   r  rb   s    rQ   r   zBlock.warning  r  rP   c                L    | D cg c]  }|j                   |k(  s| c}S c c}w r]   )rV   )r_   element_typer   s      rQ   r  z	Block.get  s%    :4a166\#94:::s   !!Nrj   c               :    | j                   j                  |      S zRun the script with updated widget values.

        Parameters
        ----------
        timeout
            The maximum number of seconds to run the script. None means
            use the AppTest's default.
        rj   rm   ro   s     rQ   rn   z	Block.run  rp   rP   c                    t        |       S r]   )rs   rb   s    rQ   rt   zBlock.__repr__  s    T{rP   )rW   BlockProto | NonerY   rX   rx   ry   r   )rx   zIterator[Node])r  r   rx   Noder  )rx   zWidgetList[Button])rx   zWidgetList[ButtonGroup[Any]])rx   zElementList[Caption])rx   zWidgetList[ChatInput])rx   zSequence[ChatMessage])rx   zWidgetList[Checkbox])rx   zElementList[Code])rx   zWidgetList[ColorPicker])rx   zSequence[Column])rx   zElementList[Dataframe])rx   zWidgetList[DateInput])rx   zWidgetList[DateTimeInput])rx   zElementList[Divider])rx   zElementList[Error])rx   zElementList[Exception])rx   zSequence[Expander])rx   zElementList[Header])rx   zElementList[Info])rx   zElementList[Json])rx   zElementList[Latex])rx   zElementList[Markdown])rx   zElementList[Metric])rx   zWidgetList[Multiselect[Any]])rx   zWidgetList[NumberInput])rx   zWidgetList[Radio[Any]])rx   zWidgetList[SelectSlider[Any]])rx   zWidgetList[Selectbox[Any]])rx   zWidgetList[Slider[Any]])rx   zSequence[Status])rx   zElementList[Subheader])rx   zElementList[Success])rx   zElementList[Table])rx   zSequence[Tab])rx   zElementList[Text])rx   zWidgetList[TextArea])rx   zWidgetList[TextInput])rx   zWidgetList[TimeInput])rx   zElementList[Title])rx   zElementList[Toast])rx   zWidgetList[Toggle])rx   zElementList[Warning])r
  rU   rx   zSequence[Node]r{   r|   ):rK   rL   rM   rN   r}   r
   rW   rY   r`   r   rc   r   r~   r[   r   r  r  r  r  r  r'  r1  r  r  rR  r  r  r   rd  r  rw  r   r  r  r  r  r  r  r  r;  r*  rV  r  r~  r   r  r   rh  rp  r  r  r  r  r  r   r  rn   rt   rO   rP   rQ   r.   r.     s    IE"E3"5)D+)   
	$"0
   
 . . 4 4 0 0 2 2 ( ( 0 0 - - 4 4 " " 9 9 2 2 7 7 0 0 . . 2 2 $ $ / / - - - - . . 1 1 / / 3 3 4 4 - - 5 5 1 1 . . " " 2 2 0 0 4 4   - - 1 1 2 2 2 2 . . . . . . 0 0; .2 	.rP   r.   c                     j                   j                  }dddg t               i gt               r fdt	               D        }n#fd j
                  j                         D        }g }|D ]=  \  }}t        |t              r| dt        |       n| d|}|j                  |       ? d|d   z   |d<   d	j                  |      }t        j                  |d
      }| d| dS )ziA custom repr similar to `streamlit.util.repr_` but that shows tree
    structure using indentation.
    N Fc              3     K   | ]m  }|j                   r_t        |j                        |j                  k7  r<t        |j                        vr$|j                  t        |j                        f o y wr]   )rT   rg   rh   default).0fdefaultsr_   s     rQ   	<genexpr>zrepr_.<locals>.<genexpr>  s^      
!vvaff%2aff%X5	 VVWT166*+!s   A3A6c              3  6   K   | ]  \  }}|vs||f  y wr]   rO   )r  r  r   r  s      rQ   r  zrepr_.<locals>.<genexpr>  s#     W,A&1aQhEV1v,As   	=
r   ,
    (z
))r   rK   setr   r   __dict__itemsr   dictformat_dictr  jointextwrapindent)	r_   	classnamefields_valsreprs
field_namere   linefield_reprsr  s	   `       @rQ   rs   rs     s     ''IUBr:HD
D\
 XDMM,?,?,AWE(
E %& l!K./0<q	* 	
 	T ) eAhE!H**U#K//+w7K[+c**rP   c                    g }| j                         D ]  \  }}| d|}|j                  |        dj                  |      }t        j                  |d      }d| dS )Nz: r  r  z{
z
})r   r  r#  r$  r%  )dlinesr  r   r*  rs         rQ   r"  r"    sd    E	1Bqe}T  	

5A7#A!D>rP   c                  *    e Zd ZdZ	 d	 	 	 	 	 	 	 ddZy)SpecialBlockz4Base class for the sidebar and main body containers.Nc                    i | _         || _        |r|| _        || _        y |r5|j                  d      r$|j                  d      }|J || _        || _        y d| _        || _        y )NrV   r  )r  rW   rV   r   rY   )r_   rW   rY   rV   r   s        rQ   r`   zSpecialBlock.__init__  sq     
DI 	 u''/!!&)B>!>DI 	 "DI	rP   r]   )rW   r  rY   rX   rV   rZ   rx   ry   )rK   rL   rM   rN   r`   rO   rP   rQ   r1  r1    s5    >  	   	
 
rP   r1  c                  r    e Zd ZU dZ ed      Zded<    ed      Zded<   ded<   ded	<   	 	 	 	 	 	 dd
Zy)ChatMessagez(A representation of ``st.chat_message``.FrS   rU   rV   BlockProto.ChatMessagerW   rh   avatarc                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  )r  rW   rY   rV   rh   r6  r^   s      rQ   r`   zChatMessage.__init__  s6    
 
	"	JJ	llrP   N)rW   r5  rY   rX   rx   ry   	rK   rL   rM   rN   r
   rV   r}   rW   r`   rO   rP   rQ   r4  r4    sO    25!D#!$)u$5E!5
IK
#%
# 
# 
	
#rP   r4  c                  r    e Zd ZU dZ ed      Zded<    ed      Zded<   ded	<   ded
<   	 	 	 	 	 	 ddZy)Columnz3A representation of a column within ``st.columns``.FrS   rU   rV   BlockProto.ColumnrW   r  weightgapc                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  )r  rW   rY   rV   r<  r=  r^   s      rQ   r`   zColumn.__init__1  s6    
 
		ll99rP   N)rW   r;  rY   rX   rx   ry   r8  rO   rP   rQ   r:  r:  (  sO    =5!D#!$%0E0M	H
 
 
 
	
rP   r:  c                  b    e Zd ZU  ed      Zded<    ed      Zded<   ded<   ded<   dd	Zy
)ExpanderFrS   rU   rV   BlockProto.ExpandablerW   r   r   c                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  r  rW   rY   rV   r   r   r^   s      rQ   r`   zExpander.__init__E  s6    
	 	JJ	[[
rP   NrW   rA  rY   rX   rx   ry   )rK   rL   rM   r
   rV   r}   rW   r`   rO   rP   rQ   r@  r@  >  s0    5!D#!#(e#4E 4
IJ!rP   r@  c                  t    e Zd ZU  ed      Zded<    ed      Zded<   ded<   ded<   dd	Zedd
       Z	y)StatusFrS   rU   rV   rA  rW   r   r   c                    i | _         || _        || _        d| _        |j                  | _        |j
                  | _        y r  rC  r^   s      rQ   r`   zStatus.__init__W  s4    
		JJ	[[
rP   c                x    | j                   dk(  ry| j                   dk(  ry| j                   dk(  ryt        d      )Nspinnerrunningz:material/check:completez:material/error:r   zUnknown Status state)r   r   rb   s    rQ   r   zStatus.state_  s=    99	!99**99**/00rP   NrD  r|   )
rK   rL   rM   r
   rV   r}   rW   r`   r~   r   rO   rP   rQ   rF  rF  P  sD    5!D#!#(e#4E 4
IJ! 1 1rP   rF  c                  h    e Zd ZU dZ ed      Zded<    ed      Zded<   ded<   	 	 	 	 	 	 dd	Zy
)Tabz+A representation of tab within ``st.tabs``.FrS   rU   rV   BlockProto.TabrW   r   c                ^    i | _         || _        || _        d| _        |j                  | _        y r  )r  rW   rY   rV   r   r^   s      rQ   r`   zTab.__init__r  s+    
 
		[[
rP   N)rW   rN  rY   rX   rx   ry   r8  rO   rP   rQ   rM  rM  j  sI    55!D#!!u-E>-J	!	! 	! 
		!rP   rM  r  c                <    t        | t              r| j                  S y r]   )r   r   r   )nodes    rQ   get_widget_staterR    s    $!!!rP   c                      e Zd ZU dZ edd      Zded<   ddZedd       Z	edd	       Z
edd
       ZddZddddZddZy)rX   ax  A tree of the elements produced by running a streamlit script.

    Elements can be queried in three ways:
    - By element type, using `.foo` properties to get a list of all of that element,
    in the order they appear in the app
    - By user key, for widgets, by calling the above list with a key: `.foo(key='bar')`
    - Positionally, using list indexing syntax (`[...]`) to access a child of a
    block element. Not recommended because the exact tree structure can be surprising.

    Element queries made on a block container will return only the elements
    descending from that block.

    Returned elements have methods for accessing whatever attributes are relevant.
    For very simple elements this may be only its value, while complex elements
    like widgets have many.

    Widgets provide a fluent API for faking frontend interaction and rerunning
    the script with the new widget values. All widgets provide a low level `set_value`
    method, along with higher level methods specific to that type of widget.
    After an interaction, calling `.run()` will update the AppTest with the
    results of that script run.
    FN)rT   r  zAppTest | None_runnerc                .    i | _         | | _        d| _        y )NrY   )r  rY   rV   rb   s    rQ   r`   zElementTree.__init__  s    		rP   c                4    | d   }t        |t              sJ |S )Nr   r   r.   )r_   ms     rQ   mainzElementTree.main       G!U###rP   c                4    | d   }t        |t              sJ |S )Nr?  rW  )r_   ss     rQ   sidebarzElementTree.sidebar  rZ  rP   c                J    | j                   J | j                   j                  S r]   )rT  r   rb   s    rQ   r   zElementTree.session_state  s"    ||'''||)))rP   c                z    t               }| D ]+  }t        |      }||j                  j                  |       - |S r]   )r)   rR  widgetsr  )r_   r   rQ  ws       rQ   get_widget_stateszElementTree.get_widget_states  s;    ^D &A}

!!!$ 
 	rP   rj   c               x    | j                   J | j                         }| j                   j                  ||      S r  )rT  rb  _run)r_   rk   widget_statess      rQ   rn   zElementTree.run  s<     ||'''..0||   @@rP   c                ,    t        | j                        S r]   )r"  r  rb   s    rQ   rt   zElementTree.__repr__  s    4==))rP   )rx   ry   )rx   r.   )rx   rF   )rx   r)   r{   r|   )rK   rL   rM   rN   r
   rT  r}   r`   r~   rY  r]  r   rb  rn   rt   rO   rP   rQ   rX   rX     sp    . $=G^=
  
  
 * * .2 A*rP   rX   c                x   t               }t        d|d      t        d|d      t        d|d      d|_        | D ]  }|j                  d      s|j                  j
                  }|j                  }|j                  d      d	k(  r'|j                  }|j                  d      }|d
k(  r|j                  j                  }|t        j                  j                  k(  rt        |j                  |      }n|t        j                  j                  k(  rt!        |j                  |      }ne|t        j                  j"                  k(  rt%        |j                  |      }n/|t        j                  j&                  k(  rt)        |j                  |      }nt+        d|j                  j                         |dk(  rt-        |j.                  |      }n|dk(  rt1        |j2                  |      }n|dk(  rt5        |j6                  |      }n}|dk(  rt9        |j:                  |      }n_|dk(  rt=        |j>                  |      }nA|dk(  re|j@                  jB                  }	|	tD        jF                  jH                  k(  rtK        |j@                  |      }ntM        |j@                  |      }n|dk(  rtO        |jP                  |      }n|dk(  rtS        |jT                  |      }n|dk(  rtW        |jX                  |      }n}|dk(  rt[        |j\                  |      }n_|dk(  rt_        |j`                  |      }nA|dk(  r |jb                  jd                  tf        jh                  jj                  k(  rtm        |jb                  |      }n|jb                  jd                  tf        jn                  jj                  k(  rtq        |jb                  |      }n|jb                  jd                  tf        jr                  jj                  k(  rtu        |jb                  |      }n]t+        d|jb                  jd                         |dk(  rtw        |jx                  |      }n|dk(  rJ|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }n|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }n|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }n9|jz                  j|                  t~        j                  j                  k(  rt        |jz                  |      }nt+        d|jz                  j|                         |dk(  rt        |j                  |      }n|dk(  rt        |j                  |      }n|dk(  rt        |j                  |      }ns|d k(  rt        |j                  |      }nU|d!k(  rt        |j                  |      }n7|d"k(  r|j                  jB                  t        j                  j                  k(  rt        |j                  |      }n|j                  jB                  t        j                  j                  k(  rt        |j                  |      }nt+        d#|j                         |d$k(  rt        |j                  |      }nh|d%k(  rt        |j                  |      }nJ|d&k(  rt        |j                  |      }n,|d'k(  rt        |j                  |      }n|d(k(  rt        |j                  |      }nt        ||      }n|j                  d      d)k(  r|j                  }
|
j                  d      }|d*k(  rt        |
j                  |      }n|d+k(  rt        |
j                  |      }nx|d,k(  rF|
j                  j                  rt        |
j                  |      }nEt        |
j                  |      }n-|d-k(  rt        |
j                  |      }nt        |
|.      }nW|}|dd/ D ]G  }|j                  }|j                  |      }|t        d|.      }|||<   t        |t              sJ |}I t        |t              r1|j                  j                  |d/         }||j                  |_        ||j                  |d/   <    |S )0zTransform a list of `ForwardMsg` into a tree matching the implicit
    tree structure of blocks and elements in a streamlit app.

    Returns the root of the tree, which acts as the entrypoint for the query
    and interaction API.
    rY  N)rV   rY   rW   r]  event)r   r?  r>  r  rV   new_elementalert)rY   zUnknown alert type with format rA  rb  r   r  r  r  r'  r1  rR  r  rd  headingzUnknown heading type with tag r  r  zUnknown markdown type r  r  r  r  r*  rV  zSlider with unknown type rh  rp  r  r  r  	add_blockr  r  
expandabler  )rW   rY   )rrX   r1  r  HasFieldmetadata
delta_pathr  r   ri  rj  r  r   FormatERRORr   INFOr   SUCCESSr   WARNINGr   r   r=  rA  r_  rb  r/   r   r0   r  r1   r  r  rV   r  	StyleTypeTOGGLEr  r%   r2   r'  r3   r1  r4   rR  r5   r  r7   rd  rk  rm  r   	TITLE_TAGre   r  
HEADER_TAGrt  SUBHEADER_TAGr{  r:   r  r  r
  r  TypeNATIVEr&   CAPTIONr  LATEXr  DIVIDERr  r;   r  r  r  r=   r  r>   r  r?   r*  rV  r6  SLIDERr'   SELECT_SLIDERr5  rA   rh  rB   rp  rC   r  rD   r  rE   r  r   rl  r4  r  r:  r  rm  r   rF  r@  rM  r  r.   r  r   )messagesrY   msgrq  r  eltr   alert_formatnew_nodestyleblockbtycurrent_noder   r  childplaceholder_blocks                    rQ   parse_tree_from_messagesr    s+    =DV$d;YT>W4t<DM ||G$\\,,
		F#}4##C'BW}"yy//:#4#4#:#::$SYYT:H!Z%6%6%;%;;#CIID9H!Z%6%6%>%>>&syyt<H!Z%6%6%>%>>&syyt<H$9#)):J:J9KL  ))$S%9%9E}$ t<x!#**48~%&s'7'7dC|#$S^^$?z!))M33:::%cll>H'4@Hvt4~%&s'7'7dC|#$S^^$?((()<)<4H{"$S]]>y;;??o&?&?&E&EE$S[[t<H[[__(B(B(H(HH%ckk=H[[__(E(E(K(KK(4@H$'EckkooEV%WXXvt4z!<<,,0B0B0I0II'4@H\\..-2D2D2L2LL&s||$?H\\..-2D2D2J2JJ$S\\=H\\..-2D2D2L2LL&s||$?H$01J1J0KL  x!#**48}$&sTB~%&s'7'7dCw 6{"$S]]>x::??k&6&6&=&==%cjjt<HZZ__(8(8(F(FF+CJJTBH$'@%MNNvt4{"#CMM=|#$S^^$?|#$S^^$?w 6)#D9f%4OOE""6*Cn$&u'9'9E!%,,T:$##((%e&6&6TBH'(8(8tDHuyyt4 u48 "cr?C#,,HLL%E}Dt4 %eU+++ L # h& , 5 5 9 9*R. I ,$5$>$>!08jn-W Z KrP   )r_   objectrx   rU   )r-  zdict[Any, Any]rx   rU   )rQ  r  rx   zWidgetState | None)r  zlist[ForwardMsg]rx   rX   )
__future__r   r$  abcr   r   collections.abcr   r   r   dataclassesr	   r
   r   r   r   r   r   r   typingr   r   r   r   r   r   r   typing_extensionsr   	streamlitr   r   streamlit.elements.headingr   (streamlit.elements.widgets.select_sliderr   !streamlit.elements.widgets.sliderr   r   'streamlit.elements.widgets.time_widgetsr   r    r!   r"   r#   streamlit.proto.Alert_pb2r$   r   streamlit.proto.Checkbox_pb2r%   r  streamlit.proto.Markdown_pb2r&   r  streamlit.proto.Slider_pb2r'   r6   streamlit.proto.WidgetStates_pb2r(   r)   streamlit.runtime.state.commonr*   r+   pandasr,   rI  streamlit.proto.Arrow_pb2r-   r>  streamlit.proto.Block_pb2r.   
BlockProtostreamlit.proto.Button_pb2r/   r   streamlit.proto.ButtonGroup_pb2r0   r  streamlit.proto.ChatInput_pb2r1   r  streamlit.proto.Code_pb2r2   r"  streamlit.proto.ColorPicker_pb2r3   r.  streamlit.proto.DateInput_pb2r4   rM  !streamlit.proto.DateTimeInput_pb2r5   r  streamlit.proto.Element_pb2r6   rw   streamlit.proto.Exception_pb2r7   rh  streamlit.proto.ForwardMsg_pb2r8   streamlit.proto.Heading_pb2r9   rl  streamlit.proto.Json_pb2r:   r  streamlit.proto.Metric_pb2r;   r  streamlit.proto.MultiSelect_pb2r<   r  streamlit.proto.NumberInput_pb2r=   r  streamlit.proto.Radio_pb2r>   r  streamlit.proto.Selectbox_pb2r?   r'  streamlit.proto.Space_pb2r@   r  streamlit.proto.Text_pb2rA   re  streamlit.proto.TextArea_pb2rB   rl  streamlit.proto.TextInput_pb2rC   r~  streamlit.proto.TimeInput_pb2rD   r  streamlit.proto.Toast_pb2rE   r  *streamlit.runtime.state.safe_session_staterF   streamlit.testing.v1.app_testrG   rH   rJ   r   r   r   r   r   r   r   r   r   r   r   r=  rJ  r}   rK  rk  rt  r{  r  r  r  r  r  r   r  r  r5  rR  r_  r  r  r  rs   r"  r1  r4  r:  r@  rF  rM  r  rR  rX   r  rO   rP   rQ   <module>r     s?  $ #  # 8 8 > > 4 4   # * 6 F E  : B B < F P3==@OI:OIUCI9C:@OO=I=:FII=K5CL ; ; ; 2 c 2  2 j $W $ $( 0Wc 0 00 	w$7&''%. &'R vVt4T"GDM     I   i   9   i   &$V &$ &$R + + +D )%v )% )%X $7 $ $* +!& +! +!\ P P P "H_ ,&/)BBTI	9 I ) ) )X   ( '3  & 0[ 0 0
 3 3 3
 /K / /
 7    w  $ h   h   H   
G 
 
 W  $ N&'!* N Nb V&'!* V Vr %K	  9!& 9! 9!x 7FGAJ 7 7t C
 C CL G.671: G. G.T ~sE4xH 2.VW\* 2. 2.j PG P P 7    0!v 0! 0!f 0! 0! 0!f h	9 &!) Y ) 5) 5) 5)p 1F 1 1h G   "V " "J f f fR +F 5  , #% # #* U  * !u ! !" 1U 1 12 !% ! !& E/i ! H*% H* H*V[rP   