Ë
    úmxi–  ã                  óÈ   — d dl mZ d dl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 d dlmZ d dlmZ d dlmZmZmZmZmZmZ d d	lmZ erd d
lmZ dd„Z G d„ d«      Z y)é    )ÚannotationsN)ÚChainMapÚUserDict)ÚTYPE_CHECKINGÚAnyÚcast)ÚLayoutConfigÚWidthWithoutContentÚvalidate_width)ÚJson)Úgather_metrics)Údump_pydantic_sequenceÚis_custom_dictÚis_list_likeÚis_namedtupleÚis_pydantic_modelÚis_sequence_of_pydantic_models)ÚUserInfoProxy)ÚDeltaGeneratorc                óN   — t        | t        «      rt        | «      S t        | «      S )z\A repr function for json.dumps default arg, which tries to serialize sets
    as lists.
    )Ú
isinstanceÚsetÚlistÚrepr)Úos    úN/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/elements/json.pyÚ_ensure_serializationr   +   s    € ô ! ¤CÔ(Œ4�‹7Ð5¬d°1«gÐ5ó    c                  óR   — e Zd Z ed«      dddœ	 	 	 	 	 	 	 dd„«       Zed	d„«       Zy)
Ú	JsonMixinÚjsonTÚstretch)ÚexpandedÚwidthc               óü  — t        |«      rBt        |t        «      }|j                  «       }|r d|v rt        j                  |d   d«      |d<   t        |«      r|j                  «       }t        |t        t        j                  t        f«      st        |«      rt	        |«      }t        |«      r#t        |«      r	 t        |«      }nt#        |«      }t        |t$        «      s	 t'        j(                  |t*        ¬«      }t3        «       }||_        t        |t6        «      r||_        n7t        |t:        «      rd|_        ||_        nt-        d	t?        |«      › d
�«      ‚tA        |«       tC        |¬«      }| j.                  jE                  d||¬«      S # t         $ r t#        |«      }Y Œ×w xY w# t,        $ rE}| j.                  j1                  d|› d�«       t'        j(                  |dt*        ¬«      }Y d}~Œød}~ww xY w)a¼  Display an object or string as a pretty-printed, interactive JSON string.

        Parameters
        ----------
        body : object or str
            The object to print as JSON. All referenced objects should be
            serializable to JSON as well. If object is a string, we assume it
            contains serialized JSON.

        expanded : bool or int
            The initial expansion state of the JSON element. This can be one
            of the following:

            - ``True`` (default): The element is fully expanded.
            - ``False``: The element is fully collapsed.
            - An integer: The element is expanded to the depth specified. The
              integer must be non-negative. ``expanded=0`` is equivalent to
              ``expanded=False``.

            Regardless of the initial expansion state, users can collapse or
            expand any key-value pair to show or hide any part of the object.

        width : "stretch" or int
            The width of the JSON 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
        -------
        >>> import streamlit as st
        >>>
        >>> st.json(
        ...     {
        ...         "foo": "bar",
        ...         "stuff": [
        ...             "stuff 1",
        ...             "stuff 2",
        ...             "stuff 3",
        ...         ],
        ...         "level1": {"level2": {"level3": {"a": "b"}}},
        ...     },
        ...     expanded=2,
        ... )

        .. output::
           https://doc-json.streamlit.app/
           height: 385px

        Útokensz***)ÚdefaultzqWarning: this data structure was not fully serializable as JSON due to one or more unexpected keys.  (Error was: ú)T)Úskipkeysr'   Nz	The type z5 of `expanded` is not supported, must be bool or int.)r$   r!   )Úlayout_config)#r   r   r   Úto_dictÚdictÚfromkeysr   Ú_asdictr   ÚtypesÚMappingProxyTyper   r   r   r   r   ÚAttributeErrorr   Ústrr!   Údumpsr   Ú	TypeErrorÚdgÚwarningÚ	JsonProtoÚbodyÚboolr#   ÚintÚmax_expand_depthÚtyper   r	   Ú_enqueue)Úselfr8   r#   r$   Úis_userÚerrÚ
json_protor*   s           r   r!   zJsonMixin.json3   sÅ  € ô~ ˜$ÔÜ  ¤}Ó5ˆGØ—<‘<“>ˆDÙ˜8 tÑ+Ü!%§¡¨t°H©~¸uÓ!E��X‘ä˜ÔØ—<‘<“>ˆDäØ”8œU×3Ñ3´XÐ>ô
ä˜tÔ$Ü˜“:ˆDä˜ÔÜ-¨dÔ3ð&Ü1°$Ó7‘Dô
 ˜D“z�ä˜$¤Ô$ðVä—z‘z $Ô0EÔF�ô “[ˆ
Øˆ
Œä�h¤Ô%Ø"*ˆJÕÜ˜¤#Ô&Ø"&ˆJÔØ*2ˆJÕ'äØœD ›NÐ+ð ,)ð )óð ô
 	�uÔÜ$¨5Ô1ˆà�w‰w×Ñ ¨
À-ÐÓPÐPøôE &ò &ä ›:’Dð&ûô ò VØ—‘—‘ðMØMPÈEÐQRðTôô —z‘z $°Ô?TÔU•ûðVús*   Â;F Ã#F- ÆF*Æ)F*Æ-	G;Æ6;G6Ç6G;c                ó   — t        d| «      S )zGet our DeltaGenerator.r   )r   )r>   s    r   r5   zJsonMixin.dg¨   s   € ô Ð$ dÓ+Ð+r   N)r8   Úobjectr#   z
bool | intr$   r
   Úreturnr   )rD   r   )Ú__name__Ú
__module__Ú__qualname__r   r!   Úpropertyr5   © r   r   r    r    2   sh   „ Ù�FÓð
  $Ø%.ñrQàðrQð ð	rQð
 #ðrQð 
òrQó ðrQðh ò,ó ñ,r   r    )r   rC   rD   zstr | list[Any])!Ú
__future__r   r!   r/   Úcollectionsr   r   Útypingr   r   r   Ú#streamlit.elements.lib.layout_utilsr	   r
   r   Ústreamlit.proto.Json_pb2r   r7   Ústreamlit.runtime.metrics_utilr   Ústreamlit.type_utilr   r   r   r   r   r   Ústreamlit.user_infor   Ústreamlit.delta_generatorr   r   r    rI   r   r   ú<module>rS      sQ   ðõ #ã Û ß *ß +Ñ +÷ñ õ
 7Ý 9÷÷ õ .áÝ8ó6÷y,ò y,r   