Ë
    úmxi‡C  ã                  ó¾  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZ ddlZddlmZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlm Z  e	rddl!m"Z" ddlm#Z# dZ$de%d<    G d„ d«      Z&d(d„Z'd)d„Z(d)d„Z)d)d„Z*d)d„Z+d*d„Z,d+d„Z- ej\                  d«      Z/d*d„Z0d,d„Z1d-d„Z2d.d„Z3d/d „Z4d0d!„Z5d1d"„Z6d2d#„Z7d3d$„Z8d4d5d%„Z9d6d&„Z:d7d'„Z;y)8z@Allows us to create and absorb changes (aka Deltas) to elements.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚFinalÚcast)ÚLayoutConfigÚvalidate_width)Ú	DocString)ÚMember)Ú
CachedFunc)Úgather_metrics)Ú__file__)ÚSecrets)Úis_mem_address_str)ÚDeltaGenerator)ÚWidthWithoutContent)z
(element, r   Ú CONFUSING_STREAMLIT_SIG_PREFIXESc                  óP   — e Zd Z ed«      efddœ	 	 	 	 	 dd„«       Zedd„«       Zy)	Ú	HelpMixinÚhelpÚstretch©Úwidthc               óœ   — t        «       }t        |d¬«       t        |¬«      }t        ||«       | j                  j                  d||¬«      S )u©	  Display help and other information for a given object.

        Depending on the type of object that is passed in, this displays the
        object's name, type, value, signature, docstring, and member variables,
        methods â€” as well as the values/docstring of members and methods.

        Parameters
        ----------
        obj : any
            The object whose information should be displayed. If left
            unspecified, this call will display help for Streamlit itself.
        width : "stretch" or int
            The width of the help element. This can be one of the following:

            - ``"stretch"`` (default): The width of the element matches the
              width of the parent container.
            - An integer specifying the width in pixels: The element has a
              fixed width. If the specified width is greater than the width of
              the parent container, the width of the element matches the width
              of the parent container.

        Example
        -------

        Don't remember how to initialize a dataframe? Try this:

        >>> import streamlit as st
        >>> import pandas
        >>>
        >>> st.help(pandas.DataFrame)

        .. output::
            https://doc-string.streamlit.app/
            height: 700px

        Want to quickly check what data type is output by a certain function?
        Try:

        >>> import streamlit as st
        >>>
        >>> x = my_poorly_documented_function()
        >>> st.help(x)

        Want to quickly inspect an object? No sweat:

        >>> class Dog:
        >>>   '''A typical dog.'''
        >>>
        >>>   def __init__(self, breed, color):
        >>>     self.breed = breed
        >>>     self.color = color
        >>>
        >>>   def bark(self):
        >>>     return 'Woof!'
        >>>
        >>>
        >>> fido = Dog("poodle", "white")
        >>>
        >>> st.help(fido)

        .. output::
            https://doc-string1.streamlit.app/
            height: 300px

        And if you're using Magic, you can get help for functions, classes,
        and modules without even typing ``st.help``:

        >>> import streamlit as st
        >>> import pandas
        >>>
        >>> # Get help for Pandas read_csv:
        >>> pandas.read_csv
        >>>
        >>> # Get help for Streamlit itself:
        >>> st

        .. output::
            https://doc-string2.streamlit.app/
            height: 700px
        F)Úallow_contentr   Ú
doc_string)Úlayout_config)ÚDocStringProtor	   r   Ú	_marshallÚdgÚ_enqueue)ÚselfÚobjr   Údoc_string_protor   s        úT/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/elements/doc_string.pyr   zHelpMixin.help/   sQ   € ôh *Ó+Ðä�u¨EÕ2Ü$¨5Ô1ˆÜÐ" CÔ(à�w‰w×ÑØÐ*¸-ð  ó 
ð 	
ó    c                ó   — t        d| «      S )zGet our DeltaGenerator.r   )r   )r"   s    r%   r    zHelpMixin.dg�   s   € ô Ð$ dÓ+Ð+r&   N)r#   r   r   r   Úreturnr   )r(   r   )Ú__name__Ú
__module__Ú__qualname__r   Ú	streamlitr   Úpropertyr    © r&   r%   r   r   .   sW   „ Ù�FÓà"ð[
ØDMñ[
Øð[
Ø.Að[
à	ò[
ó ð[
ðz ò,ó ñ,r&   r   c                óè   — t        «       }|�|| _        t        |«      }|| _        t	        |«      }|�|| _        t        ||«      }|�|| _        | j                  j                  t        |«      «       y)zIConstruct a DocString object.

    See DeltaGenerator.help for docs.
    N)Ú_get_variable_nameÚnameÚ_get_type_as_strÚtypeÚ_get_docstringr   Ú
_get_valueÚvalueÚmembersÚextendÚ_get_members)r$   r#   Úvar_nameÚobj_typeÚobj_docsÚ	obj_values         r%   r   r   “   s{   € ô
 "Ó#€HØÐØ (ÐÔä Ó$€HØ$ÐÔä˜cÓ"€HØÐØ&.ÐÔ#ä˜3 Ó)€IØÐØ!*ÐÔà×Ñ×#Ñ#¤L°Ó$5Õ6r&   c                óf   — t        | dd «      }|rt        d|«      S t        dt        | dd «      «      S )Nr+   Ústrú
str | Noner)   )Úgetattrr   )r#   r1   s     r%   Ú	_get_namerB   ª   s:   € ô �3˜¨Ó-€DÙÜ�E˜4Ó Ð ô
 �œg c¨:°tÓ<Ó=Ð=r&   c                ó   — t        | dd «      S )Nr*   )rA   ©r#   s    r%   Ú_get_modulerE   ¸   s   € Ü�3˜ dÓ+Ð+r&   c                ó¤  — t        j                  | «      st        | «      sy d}	 t        t        j                  | «      «      }d}t        j                  t        «      5  | j                  dk(  }d d d «       |r1t        D ](  }|j                  |«      sŒ|j                  |d«      } |S  |S # t
        $ r d}Y Œut        $ r Y y w xY w# 1 sw Y   ŒYxY w)NÚ z(...)Fzstreamlit.delta_generatorú()ÚinspectÚisclassÚcallabler?   Ú	signatureÚ
ValueErrorÚ	TypeErrorÚ
contextlibÚsuppressÚAttributeErrorr*   r   Ú
startswithÚreplace)r#   ÚsigÚis_delta_genÚprefixs       r%   Ú_get_signaturerW   ¼   sÓ   € Ü�?‰?˜3Ô¬°¬Øà
€CðÜ”'×#Ñ# CÓ(Ó)ˆð €LÜ	×	Ñ	œ^Ó	,ñ EØ—~‘~Ð)DÑDˆ÷Eñ Ü6ò 	ˆFØ�~‰~˜fÕ%Ø—k‘k &¨#Ó.�Øà€Jð	ð
 €Jøô% ò ØŠÜò Ùðú÷Eð Eús#   ¥B+ ÁCÂ+CÂ8CÃCÃCc                ó.  — t        j                  | «      }|€lt        | «      }|t        urY|t        j                  urGt        j
                  | «      s2t        j                  | «      s|t        urt        j                  |«      }|r|j                  «       S y ©N)	rI   Úgetdocr3   ÚtypesÚ
ModuleTypeÚ
isfunctionÚismethodr   Ústrip)r#   r   r;   s      r%   r4   r4   Ù   s€   € Ü—‘ Ó$€Jð ÐÜ˜“9ˆð œDÑ Ø¤× 0Ñ 0Ñ0Ü×&Ñ& sÔ+Ü×$Ñ$ SÔ)Ø¤
Ñ*ä Ÿ™¨Ó1ˆJáØ×ÑÓ!Ð!àr&   c                 ó2   — t        «       } | €yt        | «      S )z¢Try to get the name of the variable in the current line, as set by the user.

    For example:
    foo = bar.Baz(123)
    st.help(foo)

    The name is "foo"
    N)Ú _get_current_line_of_code_as_strÚ _get_variable_name_from_code_str)Úcodes    r%   r0   r0   ó   s   € ô ,Ó-€Dà€|Øä+¨DÓ1Ð1r&   c                ó8  — t        j                  | «      }t        |d¬«      st        |d¬«      s| j                  d«      S t	        |«      }|sy t        |«      t         j                  u r;t        |j                  «      t         j                  u r2|j                  j                  S t        |«      t         j                  u ry | j                  d«      }t        |«      dkD  }|j                  }|r|j                  dz
  }||   }d }n|d   }t        |dd	«      }||| S )
Nr   )Úcommand_nameÚwriteú,ú
é   r   Úend_col_offsetéÿÿÿÿ)ÚastÚparseÚ_is_stcommandÚremovesuffixÚ_get_stcommand_argr3   Ú	NamedExprÚtargetÚNameÚidÚConstantÚsplitÚlenÚ
col_offsetÚlinenorA   )	rc   ÚtreeÚarg_nodeÚ
code_linesÚis_multilineÚstart_offsetÚfirst_linenoÚ
first_lineÚ
end_offsets	            r%   rb   rb     s
  € Ü�9‰9�T‹?€Dô* ˜¨FÕ3¼MØ˜7õ=ð
 × Ñ  Ó%Ð%ä! $Ó'€Hñ Øô ˆHƒ~œŸ™Ñ&ô �—‘Ó ¤C§H¡HÑ,Ø—?‘?×%Ñ%Ð%ô 
ˆh‹œ3Ÿ<™<Ñ	'Øð
 —‘˜DÓ!€JÜ�z“? QÑ&€Là×&Ñ&€LáØ—‘¨Ñ*ˆØ Ñ-ˆ
Ø‰
ð   ‘]ˆ
Ü˜XÐ'7¸Ó<ˆ
à�l :Ð.Ð.r&   z[\n\r]+c                 ó®   — t        «       } | €y | j                  }|sy dj                  |«      }t        j                  t
        d|j                  «       «      S )NrG   )Ú_get_scriptrunner_frameÚcode_contextÚjoinÚreÚsubÚ	_NEWLINESr_   )Úscriptrunner_framer„   Úcode_as_strings      r%   ra   ra   K  sS   € Ü0Ó2ÐàÐ!ð
 à%×2Ñ2€Láð
 à—W‘W˜\Ó*€NÜ�6‰6”)˜R ×!5Ñ!5Ó!7Ó8Ð8r&   c                 ó�   — d } d }t        j                  «       D ]*  }|j                  € y |j                  t        k(  r| } |S |} Œ, |S rY   )rI   Ústackr„   ÚfilenameÚSCRIPTRUNNER_FILENAME)Ú
prev_framer‰   Úframes      r%   rƒ   rƒ   b  sb   € Ø€JØÐô —‘“ò 
ˆð ×ÑÐ%Ùà�>‰>Ô2Ò2Ø!+ÐØð Ðð ‰
ð
ð Ðr&   c                óÖ   — | j                   d   j                  }t        |t        j                  «      syt        |j                  dd«      |k(  xs t        |j                  dd«      |k(  S )z:Checks whether the AST in tree is a call for command_name.r   Frt   NÚattr)Úbodyr6   Ú
isinstancerl   ÚCallrA   Úfunc)rz   re   Ú	root_nodes      r%   rn   rn   y  s^   € à—	‘	˜!‘×"Ñ"€Iä�i¤§¡Ô*Øô 	�	—‘  dÓ+¨|Ñ;ò 	>ô 	�	—‘ ¨Ó-°Ñ=ðr&   c                ó€   — | j                   d   j                  }|j                  rt        d|j                  d   «      S y)z8Gets the argument node for the st command in tree (AST).r   zast.exprN)r“   r6   Úargsr   )rz   r—   s     r%   rp   rp   ‰  s7   € ð —	‘	˜!‘×"Ñ"€Ià‡~‚~Ü�J 	§¡¨qÑ 1Ó2Ð2àr&   c                ój   — t        j                  | «      ryt        t        | «      j                  «      S )NÚclass)rI   rJ   r?   r3   r)   rD   s    r%   r2   r2   ”  s&   € Ü‡��sÔØäŒt�C‹y×!Ñ!Ó"Ð"r&   c                ó6   — | sy| j                  d«      \  }}}|S )NrG   rh   )Ú	partition)ÚtextÚleftÚ_s      r%   Ú_get_first_liner¡   ›  s!   € ÙØà—‘ Ó%�J€Dˆ!ˆQØ€Kr&   c                ót   — t        j                  | «      ryt        j                  | «      ryt        | «      ryy)Né   é   ri   r   )rI   ÚismodulerJ   rK   )r6   s    r%   Ú_get_weightr¦   £  s/   € Ü×Ñ˜ÔØÜ‡��uÔØÜ�„ØØr&   c                óØ   — t        | «      }|�|S t        | «      }|r| }nt        | «      }t        |«      }t        |«      }t	        |«      xs d}|r|r	|› d|› |› �n|› |› �}||k(  rd }|S )NrG   ú.)Ú_get_human_readable_valuerB   r3   rE   rW   )r#   r:   r=   r1   Úname_objÚmodulerT   s          r%   r5   r5   ­  s‘   € Ü)¨#Ó.€IàÐØÐô �S‹>€DáØ‰ô ˜“9ˆÜ˜Ó"ˆä˜Ó"€FÜ
˜Ó
"Ò
( b€CáÙ/5�v�h˜a ˜v c UÑ+¸d¸VÀCÀ5¸>ˆ	à�HÒð ˆ	àÐr&   c                ó
  — t        | t        «      ry t        j                  | «      s t        j                  | «      st        | «      ry t        | «      }t        | t        «      rt        |«      S t        |«      ry t        |«      S rY   )
r”   r   rI   rJ   r¥   rK   Úreprr?   Ú_shortenr   )r6   Ú	value_strs     r%   r©   r©   Í  si   € Ü�%œÔ!ð ä‡��uÔ¤×!1Ñ!1°%Ô!8¼HÀU¼OØä�U“€Iä�%œÔô ˜	Ó"Ð"ä˜)Ô$àä�IÓÐr&   c                óR   — | j                  «       } t        | «      |kD  r| d | dz   S | S )Nz...)r_   rw   )ÚsÚlengths     r%   r®   r®   ä  s-   € Ø	�‰‹	€AÜ!$ Q£¨&¢ˆ1ˆWˆfˆ:˜ÑÐ7°aÐ7r&   c                óÆ   — t        | dd «      }|syt        j                  |«      D ]9  }t        ||d «      }|€Œt        |t        «      st        j
                  |«      sŒ9 y y)NÚ	__class__FT)rA   rI   Úgetmror”   r-   Úisgetsetdescriptor)r#   Ú	attr_nameÚ	obj_classÚparent_classÚ
class_attrs        r%   Ú_is_computed_propertyr»   é  sh   € Ü˜˜[¨$Ó/€IáØô  Ÿ™ yÓ1ò ˆÜ˜\¨9°dÓ;ˆ
àÐØô �j¤(Ô+¬w×/IÑ/IÈ*Õ/UÙðð r&   c                óL  — g }t        | «      D ]Ø  }|j                  d«      rŒ	 t        | |«      }|r(t        | j                  |«      }d}d}t        |«      }d }nAt        | |«      }	t        |	«      }t        |	«      }
t        |	«      }|
€t        |	«      }d }nd }|
}|dk(  rŒ“t        «       }||_        ||_        |�t        |«      |_        |�||_        |j!                  ||f«       ŒÚ |r#t#        |d„ ¬«      }|D ��cg c]  \  }}|‘Œ	 c}}S g S # t        $ r Y �Œw xY wc c}}w )Nr    r-   r   r«   c                ó*   — | d   | d   j                   fS )Nr   ri   )r1   )Úxs    r%   ú<lambda>z_get_members.<locals>.<lambda>4  s   € ÀAÀaÁDÈ!ÈAÉ$Ï)É)ÐCT€ r&   )Úkey)ÚdirrR   r»   rA   r´   r4   r¦   r©   r2   rQ   ÚMemberProtor1   r3   r¡   r   r6   ÚappendÚsorted)r#   Úmembers_for_sortingr·   Úis_computed_valueÚparent_attrÚmember_typeÚweightÚmember_docsÚmember_valueÚ
attr_valueÚhuman_readable_valueÚmemberÚsorted_membersr    Úms                  r%   r9   r9   þ  sR  € ØÐä˜“Xò 05ˆ	Ø×Ñ Ô$Øð	Ü 5°c¸9Ó EÐÙ Ü% c§m¡m°YÓ?�à(�à�Ü,¨[Ó9�Ø#‘ä$ S¨)Ó4�
Ü$ ZÓ0�ä'@ÀÓ'LÐ$ä.¨zÓ:�à'Ð/Ü"0°Ó"<�KØ#'‘Là"&�KØ#7�Lð ˜(Ò"àä“ˆØˆŒØ!ˆŒàÐ"Ü /°Ó <ˆFÔàÐ#Ø'ˆFŒLà×"Ñ" F¨FÐ#3Õ4ða05ñd ÜÐ 3Ñ9TÔUˆØ,×-‘d�a˜’Ó-Ð-à€Iøô5 ò 	ò ð		üó0 .s   ¤A7DÃ>D Ä	DÄD)r$   r   r#   r   r(   ÚNone)r#   Úobjectr(   r@   )r(   r@   )rc   r?   r(   r@   )r(   zinspect.FrameInfo | None)rz   r   re   r?   r(   Úbool)rz   z
ast.Moduler(   zast.expr | None)r#   rÒ   r(   r?   )rž   r?   r(   r?   )r6   r   r(   Úint)r#   rÒ   r:   r@   r(   r@   )r6   r   r(   r@   )i,  )r±   r?   r²   rÔ   r(   r?   )r#   rÒ   r·   r?   r(   rÓ   )r#   rÒ   r(   zlist[MemberProto])<Ú__doc__Ú
__future__r   rl   rO   rI   r†   r[   Útypingr   r   r   r   r,   Ú#streamlit.elements.lib.layout_utilsr   r	   Ústreamlit.proto.DocString_pb2r
   r   r   rÂ   Ú%streamlit.runtime.caching.cache_utilsr   Ústreamlit.runtime.metrics_utilr   Ú,streamlit.runtime.scriptrunner.script_runnerr   rŽ   Ústreamlit.runtime.secretsr   Ústreamlit.string_utilr   Ústreamlit.delta_generatorr   r   r   Ú__annotations__r   r   rB   rE   rW   r4   r0   rb   Úcompilerˆ   ra   rƒ   rn   rp   r2   r¡   r¦   r5   r©   r®   r»   r9   r.   r&   r%   ú<module>râ      sÙ   ðò Gå "ã 
Û Û Û 	Û ß 2Ó 2ã ß LÝ EÝ ?Ý <Ý 9õõ .Ý 4áÝ8ÝGð +:Ð   %Ó 9÷b,ñ b,óJ7ó.>ó,óó:ó42ó"A/ðH ˆB�J‰J�zÓ"€	ó9ó.ó.ó ó#óóóó@ô.8ó
ô*9r&   