Ë
    EêñiwC  ã                  óº  — 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 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jZ                  d«      Z.d*d„Z/d,d„Z0d-d„Z1d.d„Z2d/d „Z3d0d!„Z4d1d"„Z5d2d#„Z6d3d$„Z7d4d5d%„Z8d6d&„Z9d7d'„Z:y)8z@Allows us to create and absorb changes (aka Deltas) to elements.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚFinalÚcast)Úcreate_layout_config)ÚHelp)Ú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        |¬«      }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.

        Examples
        --------
        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
        r   Ú	help_info)Úlayout_config)Ú	HelpProtor   Ú	_marshallÚdgÚ_enqueue)ÚselfÚobjr   Ú
help_protor   s        úY/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/streamlit/elements/help.pyr   zHelpMixin.help/   s<   € ôf “[ˆ
ä,°5Ô9ˆÜ�*˜cÔ"à�w‰w×Ñ ¨ZÀ}ÐÓUÐUó    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   .   s]   „ Ù�FÓà"ðWVØDMñWVØðWVØ.AðWVà	òWVó ðWVðr ò,ó ñ,r$   r   c                óè   — t        «       }|�|| _        t        |«      }|| _        t	        |«      }|�|| _        t        ||«      }|�|| _        | j                  j                  t        |«      «       y)zDConstruct a Help object.

    See DeltaGenerator.help for docs.
    N)Ú_get_variable_nameÚnameÚ_get_type_as_strÚtypeÚ_get_docstringÚ
doc_stringÚ
_get_valueÚvalueÚmembersÚextendÚ_get_members)r"   r!   Úvar_nameÚobj_typeÚobj_docsÚ	obj_values         r#   r   r   �   su   € ô
 "Ó#€HØÐØ"ˆ
Œä Ó$€HØ€J„Oä˜cÓ"€HØÐØ (ˆ
Ôä˜3 Ó)€IØÐØ$ˆ
Ôà×Ñ×Ñœl¨3Ó/Õ0r$   c                óf   — t        | dd «      }|rt        d|«      S t        dt        | dd «      «      S )Nr)   Ústrú
str | Noner'   )Úgetattrr   )r!   r/   s     r#   Ú	_get_namerA   ¦   s:   € ô �3˜¨Ó-€DÙÜ�E˜4Ó Ð ô
 �œg c¨:°tÓ<Ó=Ð=r$   c                ó   — t        | dd «      S )Nr(   )r@   ©r!   s    r#   Ú_get_modulerD   ´   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
        t        f$ r d}Y Œ{t        $ r Y y w xY w# 1 sw Y   Œ_xY w)NÚ z(...)Fzstreamlit.delta_generatorú()ÚinspectÚisclassÚcallabler>   Ú	signatureÚ
ValueErrorÚ	NameErrorÚ	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	Â>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)	rH   Úgetdocr1   ÚtypesÚ
ModuleTypeÚ
isfunctionÚismethodr   Ústrip)r!   r3   r:   s      r#   r2   r2   ×   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#   r.   r.   ñ   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_argr1   Ú	NamedExprÚtargetÚNameÚidÚConstantÚsplitÚlenÚ
col_offsetÚlinenor@   )	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 )NrF   )Ú_get_scriptrunner_frameÚcode_contextÚjoinÚreÚsubÚ	_NEWLINESr_   )Úscriptrunner_framer„   Úcode_as_strings      r#   ra   ra   I  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   )rH   Ústackr„   ÚfilenameÚSCRIPTRUNNER_FILENAME)Ú
prev_framer‰   Úframes      r#   rƒ   rƒ   `  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)Úbodyr5   Ú
isinstancerl   ÚCallr@   Úfunc)rz   re   Ú	root_nodes      r#   rn   rn   w  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“   r5   Ú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)rH   rI   r>   r1   r'   rC   s    r#   r0   r0   ’  s&   € Ü‡��sÔØäŒt�C‹y×!Ñ!Ó"Ð"r$   c                ó6   — | sy| j                  d«      \  }}}|S )NrF   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   )rH   ÚismodulerI   rJ   )r5   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 )NrF   ú.)Ú_get_human_readable_valuerA   r1   rD   rW   )r!   r9   r<   r/   Úname_objÚmodulerT   s          r#   r4   r4   «  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   rH   rI   r¥   rJ   Úreprr>   Ú_shortenr   )r5   Ú	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)r@   rH   Ú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   )r/   )Úxs    r#   ú<lambda>z_get_members.<locals>.<lambda>2  s   € ÀAÀaÁDÈ!ÈAÉ$Ï)É)ÐCT€ r$   )Úkey)ÚdirrR   r»   r@   r´   r2   r¦   r©   r0   rQ   ÚMemberProtor/   r1   r¡   r3   r5   Ú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#   r8   r8   ü  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>   )r5   r   r&   Úint)r!   rÒ   r9   r?   r&   r?   )r5   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   rH   r†   r[   Útypingr   r   r   r   r*   Ú#streamlit.elements.lib.layout_utilsr   Ústreamlit.proto.Help_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   rA   rD   rW   r2   r.   rb   Úcompilerˆ   ra   rƒ   rn   rp   r0   r¡   r¦   r4   r©   r®   r»   r8   r,   r$   r#   ú<module>râ      sÙ   ðò Gå "ã 
Û Û Û 	Û ß 2Ó 2ã Ý DÝ 6Ý :Ý <Ý 9õõ .Ý 4áÝ8ÝGð +:Ð   %Ó 9÷^,ñ ^,óB1ó.>ó,óó>ó42ó"A/ðH ˆB�J‰J�zÓ"€	ó9ó.ó.ó ó#óóóó@ô.8ó
ô*9r$   