Ë
    úmxiï$  ã                  óN  — U d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d dl
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 erd d	lmZ eee   z  Zeeef   eeeef      z  Zd
Zded<   dZded<   eegZ ded<   e G d„ deeef   «      «       Z!dd„Z"	 	 	 	 	 	 	 	 dd„Z#	 	 	 	 dd„Z$y)é    )Úannotations)ÚIterableÚIteratorÚMappingÚMutableMapping)Ú	dataclassÚfield)ÚTYPE_CHECKINGÚFinalÚcast)Úparse)ÚStreamlitAPIExceptionÚ!StreamlitQueryParamDictValueError)Ú
ForwardMsg)Úget_script_run_ctx)ÚSupportsKeysAndGetItemÚembedz
Final[str]ÚEMBED_QUERY_PARAMÚembed_optionsÚEMBED_OPTIONS_QUERY_PARAMzFinal[list[str]]ÚEMBED_QUERY_PARAMS_KEYSc                  óÆ   — e Zd ZU dZ ee¬«      Zded<   dd„Zdd„Z	dd„Z
dd„Zdd	„Z	 d	 	 	 	 	 dd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d„Z	 	 	 	 d!d„Zd"d„Zd#d$d„Zdd„Zy)%ÚQueryParamsz…A lightweight wrapper of a dict that sends forwardMsgs when state changes.
    It stores str keys with str and List[str] values.
    )Údefault_factoryúdict[str, list[str] | str]Ú_query_paramsc                óZ   — | j                  «        t        d„ | j                  D «       «      S )Nc              3  óL   K  — | ]  }|j                  «       t        vr|–— Œ y ­w©N)Úlowerr   )Ú.0Úkeys     ú[/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/runtime/state/query_params.pyú	<genexpr>z'QueryParams.__iter__.<locals>.<genexpr>4   s'   è ø€ ò 
àØ�y‰y‹{Ô"9Ñ9ô ñ
ùs   ‚"$)Ú_ensure_single_query_api_usedÚiterr   ©Úselfs    r#   Ú__iter__zQueryParams.__iter__1   s.   € Ø×*Ñ*Ô,äñ 
à×)Ñ)ô
ó 
ð 	
ó    c                ó$  — | j                  «        |j                  «       t        v rt        t	        |«      «      ‚	 | j
                  |   }t        |t        «      rt        |«      dk(  ry|d   S |S # t        $ r t        t	        |«      «      ‚w xY w)z·Retrieves a value for a given key in query parameters.
        Returns the last item in a list or an empty string if empty.
        If the key is not present, raise KeyError.
        r   Ú éÿÿÿÿ)	r%   r    r   ÚKeyErrorÚmissing_key_error_messager   Ú
isinstanceÚlistÚlen©r(   r"   Úvalues      r#   Ú__getitem__zQueryParams.__getitem__:   sŽ   € ð
 	×*Ñ*Ô,Ø�9‰9‹;Ô1Ñ1ÜÔ4°SÓ9Ó:Ð:ð
	;Ø×&Ñ& sÑ+ˆEÜ˜%¤Ô&Ü�u“: ’?Øð ˜R‘yÐ ØˆLøÜò 	;ÜÔ4°SÓ9Ó:Ð:ð	;ús   ¼-A1 Á*A1 Á/A1 Á1Bc                óh   — | j                  «        | j                  ||«       | j                  «        y r   )r%   Ú_set_item_internalÚ_send_query_param_msgr3   s      r#   Ú__setitem__zQueryParams.__setitem__O   s*   € Ø×*Ñ*Ô,Ø×Ñ  UÔ+Ø×"Ñ"Õ$r*   c                ó2   — t        | j                  ||«       y r   )Ú_set_item_in_dictr   r3   s      r#   r7   zQueryParams._set_item_internalT   s   € Ü˜$×,Ñ,¨c°5Õ9r*   c                óö   — | j                  «        |j                  «       t        v rt        t	        |«      «      ‚	 | j
                  |= | j                  «        y # t        $ r t        t	        |«      «      ‚w xY wr   )r%   r    r   r.   r/   r   r8   ©r(   r"   s     r#   Ú__delitem__zQueryParams.__delitem__W   sm   € Ø×*Ñ*Ô,Ø�9‰9‹;Ô1Ñ1ÜÔ4°SÓ9Ó:Ð:ð	;Ø×"Ñ" 3Ð'Ø×&Ñ&Õ(øÜò 	;ÜÔ4°SÓ9Ó:Ð:ð	;ús   ¼A ÁA8c               ón  — | j                  «        t        |d«      rCt        |d«      r7t        d|«      }|j                  «       D ]  }| j	                  |||   «       Œ n|D ]  \  }}| j	                  ||«       Œ |j                  «       D ]  \  }}| j	                  ||«       Œ | j                  «        y )NÚkeysr5   ú0SupportsKeysAndGetItem[str, str | Iterable[str]])r%   Úhasattrr   r@   r7   Úitemsr8   )r(   ÚotherÚkwdsr"   r4   s        r#   ÚupdatezQueryParams.updatea   s³   € ð 	×*Ñ*Ô,Ü�5˜&Ô!¤g¨e°]Ô&CÜÐKÈUÓSˆEØ—z‘z“|ò 9�Ø×'Ñ'¨¨U°3©ZÕ8ñ9ð $ò 4‘
��UØ×'Ñ'¨¨UÕ3ð4àŸ*™*›,ò 	0‰JˆC�Ø×#Ñ# C¨Õ/ð	0à×"Ñ"Õ$r*   c                ó¶   — | j                  «        || j                  vs|j                  «       t        v rg S | j                  |   }t	        |t
        «      r|S |gS r   )r%   r   r    r   r0   r1   r3   s      r#   Úget_allzQueryParams.get_allv   sU   € Ø×*Ñ*Ô,Ø�d×(Ñ(Ñ(¨C¯I©I«KÔ;RÑ,RØˆIØ×"Ñ" 3Ñ'ˆÜ" 5¬$Ô/ˆuÐ<°e°WÐ<r*   c                óž   — | j                  «        t        | j                  D �ch c]  }|j                  «       t        vr|’Œ c}«      S c c}w r   )r%   r2   r   r    r   r=   s     r#   Ú__len__zQueryParams.__len__}   sM   € Ø×*Ñ*Ô,Üð  ×-Ñ-öàØ—9‘9“;Ô&=Ñ=ò òó
ð 	
ùòs   ¤A
c                óL   — | j                  «        t        | j                  «      S r   )r%   Ústrr   r'   s    r#   Ú__str__zQueryParams.__str__‡   s   € Ø×*Ñ*Ô,Ü�4×%Ñ%Ó&Ð&r*   c                ó
  — t        «       }|€y | j                  «        t        «       }t        j                  | j
                  d¬«      |j                  _        |j                  j                  |_        |j                  |«       y )NT©Údoseq)	r   r%   r   r   Ú	urlencoder   Úpage_info_changedÚquery_stringÚenqueue)r(   ÚctxÚmsgs      r#   r8   z!QueryParams._send_query_param_msg‹   si   € Ü Ó"ˆØˆ;ØØ×*Ñ*Ô,ä‹lˆÜ-2¯_©_Ø×Ñ dô.
ˆ×ÑÔ*ð ×0Ñ0×=Ñ=ˆÔØ�‰�CÕr*   c                óh   — | j                  «        | j                  d¬«       | j                  «        y ©NT)Úpreserve_embed)r%   Úclear_with_no_forward_msgr8   r'   s    r#   ÚclearzQueryParams.clear˜   s+   € Ø×*Ñ*Ô,Ø×&Ñ&°dÐ&Ô;Ø×"Ñ"Õ$r*   c                ó”   — | j                  «        | j                  D �ci c]  }|j                  «       t        vr|| |   “Œ  c}S c c}w r   )r%   r   r    r   r=   s     r#   Úto_dictzQueryParams.to_dict�   sM   € Ø×*Ñ*Ô,ð ×)Ñ)ö
àØ�y‰y‹{Ô"9Ñ9ð ��c‘‰Nò
ð 	
ùò 
s   Ÿ#Ac                óÊ   — | j                  «        | j                  j                  «       }| j                  d¬«       	 | j	                  |«       y # t
        $ r	 || _        ‚ w xY wrX   )r%   r   ÚcopyrZ   rF   r   )r(   Ú_dictÚ	old_values      r#   Ú	from_dictzQueryParams.from_dict¦   s`   € ð
 	×*Ñ*Ô,Ø×&Ñ&×+Ñ+Ó-ˆ	Ø×&Ñ&°dÐ&Ô;ð	Ø�K‰K˜ÕøÜ$ò 	à!*ˆDÔØð	ús   ¾A ÁA"c                ó"   — || j                   |<   y r   )r   )r(   r"   Úvals      r#   Úset_with_no_forward_msgz#QueryParams.set_with_no_forward_msgµ   s   € Ø"%ˆ×Ñ˜3Òr*   c                ó¦   — | j                   j                  «       D ��ci c]   \  }}|j                  «       t        v r|r||“Œ" c}}| _         y c c}}w r   )r   rC   r    r   )r(   rY   r"   r4   s       r#   rZ   z%QueryParams.clear_with_no_forward_msg¸   sL   € ð #×0Ñ0×6Ñ6Ó8÷
á��UØ�y‰y‹{Ô5Ñ5¹.ð �‰Jó
ˆÕùó 
s   ž%Ac                ó>   — t        «       }|€y |j                  «        y r   )r   Ú!mark_production_query_params_used)r(   rU   s     r#   r%   z)QueryParams._ensure_single_query_api_used¿   s   € Ü Ó"ˆØˆ;ØØ×-Ñ-Õ/r*   N)ÚreturnzIterator[str]©r"   rL   ri   rL   )r"   rL   r4   ústr | Iterable[str]ri   ÚNone)r"   rL   ri   rl   )© )rD   ú\Iterable[tuple[str, str | Iterable[str]]] | SupportsKeysAndGetItem[str, str | Iterable[str]]rE   rL   ri   rl   )r"   rL   ri   z	list[str])ri   Úint)ri   rL   )ri   rl   )ri   zdict[str, str])r`   rn   ri   rl   )r"   rL   rd   zlist[str] | strri   rl   )F)rY   Úboolri   rl   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   Údictr   Ú__annotations__r)   r5   r9   r7   r>   rF   rH   rJ   rM   r8   r[   r]   rb   re   rZ   r%   rm   r*   r#   r   r   )   s¡   … ññ 16ÀdÔ0K€MÐ-ÓKó
ó;ó*%ó
:ó;ð >@ð%ð;ð%ð
 ð%ð 
ó%ó*=ó
ó'óó%ó

ðð;ðð 
ó	ó&ô
ô0r*   r   c                ó   — d| › d�S )Nzst.query_params has no key "z".rm   )r"   s    r#   r/   r/   Æ   s   € Ø)¨#¨¨bÐ1Ð1r*   c                ó  — t        |t        «      rt        |«      ‚|j                  «       t        v rt        d«      ‚t        |t        «      r-t        |t        «      s|D �cg c]  }t        |«      ‘Œ c}| |<   yt        |«      | |<   yc c}w )zSet an item in a dictionary.zVQuery param embed and embed_options (case-insensitive) cannot be set programmatically.N)r0   ru   r   r    r   r   r   rL   )Útarget_dictr"   r4   Úitems       r#   r;   r;   Ê   sy   € ô �%œÔÜ/°Ó4Ð4à
‡y�yƒ{Ô-Ñ-Ü#Ødó
ð 	
ô
 �%œÔ"¬:°e¼SÔ+AØ27Ö8¨$œC �IÒ8ˆ�CÒä˜u›:ˆ�CÒùò 9s   Á!B	c           	     óD  — i }t        | d«      r@t        | d«      r4t        d| «      } | j                  «       D ]  }| |   }t        |||«       Œ n·| D ]²  \  }}||v rœt	        |t
        «      rt        |«      ‚||   }t	        |t        «      s|g}t	        |t        «      r9t	        |t        «      s)|j                  |D �cg c]  }t        |«      ‘Œ c}«       n|j                  t        |«      «       |||<   Œ¦t        |||«       Œ´ t        j                  |d¬«      S c c}w )z5Convert query params into a URL-encoded query string.r@   r5   rA   TrO   )rB   r   r@   r;   r0   ru   r   r1   r   rL   ÚextendÚappendr   rQ   )Úquery_paramsÚprocessed_paramsr"   r4   Úcurrent_valrz   s         r#   Úprocess_query_paramsr�   Ý   s!  € ð
 46Ðäˆ|˜VÔ$¬°¸}Ô)MÜØ>Àó
ˆð  ×$Ñ$Ó&ò 	<ˆCØ  Ñ%ˆEÜÐ.°°UÕ;ñ	<ð 'ò 	@‰JˆC�ØÐ&Ñ&ä˜e¤TÔ*Ü;¸CÓ@Ð@à.¨sÑ3�Ü! +¬tÔ4Ø#. -�Kä˜e¤XÔ.´zÀ%ÌÔ7MØ×&Ñ&¸eÖ'D°d¬¨D­	Ò'DÕEà×&Ñ&¤s¨5£zÔ2à(3Ð  Ò%ä!Ð"2°C¸Õ?ð#	@ô& �?‰?Ð+°4Ô8Ð8ùò (Es   Â=D
Nrj   )ry   r   r"   rL   r4   rk   ri   rl   )r~   rn   ri   rL   )%Ú
__future__r   Úcollections.abcr   r   r   r   Údataclassesr   r	   Útypingr
   r   r   Úurllibr   Ústreamlit.errorsr   r   Ústreamlit.proto.ForwardMsg_pb2r   Ú7streamlit.runtime.scriptrunner_utils.script_run_contextr   Ú	_typeshedr   rL   ÚQueryParamValueÚtupleÚQueryParamsInputr   rv   r   r   r   r/   r;   r�   rm   r*   r#   ú<module>rŽ      sö   ðö #ç GÓ Gß (ß -Ñ -Ý ç UÝ 5Ý VáÝ0à˜ ™Ñ%€Ø˜3 Ð/Ñ0°8¸EÀ#ÀÐBVÑ<WÑ3XÑXÐ ð !(Ð �:Ó 'Ø(7Ð ˜:Ó 7àØð-Ð Ð)ó ð ôY0�.  c Ñ*ó Y0ó ðY0óx2ð&Ø+ð&Ø25ð&Ø>Qð&à	ó&ð&"9ð7ð"9ð 	ô"9r*   