Ë
    úmxi  ã                  ó¾   — d dl mZ d dlmZmZ d dlZd dlmZ d dl	m
Z
mZ d dlmZ erd dlmZmZ d dlmZ d d	lmZmZ  G d
„ dej,                  j.                  «      Zy)é    )Úannotations)ÚTYPE_CHECKINGÚcastN)Úmetric_type_string_to_proto)Úallow_all_cross_origin_requestsÚis_allowed_origin)Ú emit_endpoint_deprecation_notice)ÚMappingÚSequence©Ú	MetricSet)ÚStatÚStatsManagerc                  óX   — e Zd Zdd„Zd	d„Zd	d„Zd	d„Zed
d„«       Ze	 	 	 	 dd„«       Z	y)ÚStatsRequestHandlerc                ó   — || _         y ©N)Ú_manager)ÚselfÚstats_managers     úa/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/web/server/stats_request_handler.pyÚ
initializezStatsRequestHandler.initialize!   s	   € Ø%ˆ�ó    c                óØ   — t        «       r| j                  dd«       y t        | j                  j                  j                  d«      x}«      r| j                  dt        d|«      «       y y )NzAccess-Control-Allow-OriginÚ*ÚOriginÚstr)r   Ú
set_headerr   ÚrequestÚheadersÚgetr   )r   Úorigins     r   Úset_default_headersz'StatsRequestHandler.set_default_headers$   sU   € Ü*Ô,Ø�O‰OÐ9¸3Õ?Ü¨¯©×)=Ñ)=×)AÑ)AÀ(Ó)KÐK˜vÔLØ�O‰OÐ9¼4ÀÀvÓ;NÕOð Mr   c                óF   — | j                  d«       | j                  «        y)z+/OPTIONS handler for preflight CORS checks.éÌ   N)Ú
set_statusÚfinish)r   s    r   ÚoptionszStatsRequestHandler.options*   s   € à�‰˜ÔØ�‰�r   c                óT  — | j                   j                  r%d| j                   j                  vrt        | d¬«       | j                  d«      }| j                  j                  |r|nd ¬«      }d| j                   j                  j                  d«      v rR| j                  | j                  |«      j                  «       «       | j                  dd«       | j                  d	«       y | j                  | j                  |«      «       | j                  dd
«       | j                  d	«       y )Nz_stcore/z/_stcore/metrics)Únew_pathÚfamilies)Úfamily_nameszapplication/x-protobufÚAcceptzContent-TypeéÈ   zapplication/openmetrics-text)r   Úurir	   Úget_argumentsr   Ú	get_statsr    Úget_listÚwriteÚ_stats_to_protoÚSerializeToStringr   r&   Ú_stats_to_text)r   Úrequested_familiesÚstatss      r   r!   zStatsRequestHandler.get/   së   € Ø�<‰<×Ò 
°$·,±,×2BÑ2BÑ BÜ,¨TÐ<NÕOð
 "×/Ñ/°
Ó;ÐØ—‘×'Ñ'Ù/AÑ+Àtð (ó 
ˆð
 $ t§|¡|×';Ñ';×'DÑ'DÀXÓ'NÑNØ�J‰J�t×+Ñ+¨EÓ2×DÑDÓFÔGØ�O‰O˜NÐ,DÔEØ�O‰O˜CÕ à�J‰J�t×*Ñ*¨5Ó1Ô2Ø�O‰O˜NÐ,JÔKØ�O‰O˜CÕ r   c                óœ  — g }| j                  «       D ]–  }|sŒ|d   }|j                  d|j                  › d|j                  › �«       |j                  d|j                  › d|j                  › �«       |j                  d|j
                  › �«       |j                  d„ |D «       «       Œ˜ |j                  d«       dj                  |«      S )	Nr   z# TYPE ú z# UNIT z# HELP c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr   )Úto_metric_str)Ú.0Ústats     r   ú	<genexpr>z5StatsRequestHandler._stats_to_text.<locals>.<genexpr>T   s   è ø€ ÒA°4˜$×,Ñ,×.ÑAùs   ‚z# EOF
ú
)ÚvaluesÚappendÚfamily_nameÚtypeÚunitÚhelpÚextendÚjoin)Ústats_by_familyÚresultr8   Ú
first_stats       r   r6   z"StatsRequestHandler._stats_to_textE   sÃ   € àˆà$×+Ñ+Ó-ò 	BˆEÙØð
 ˜q™ˆJØ�M‰M˜G J×$:Ñ$:Ð#;¸1¸Z¿_¹_Ð<MÐNÔOØ�M‰M˜G J×$:Ñ$:Ð#;¸1¸Z¿_¹_Ð<MÐNÔOØ�M‰M˜G J§O¡OÐ#4Ð5Ô6Ø�M‰MÑA¸5ÔAÕAð	Bð 	�‰�iÔ Ø�y‰y˜Ó Ð r   c                óŒ  — ddl m}  |«       }| j                  «       D ]£  }|sŒ|d   }|j                  j	                  «       }|j
                  |_        t        |j                  «      |_        |j                  |_	        |j                  |_
        |D ]-  }|j                  j	                  «       }|j                  |«       Œ/ Œ¥ |S )Nr   r   )Ú*streamlit.proto.openmetrics_data_model_pb2r   rA   Úmetric_familiesÚaddrC   Únamer   rD   rE   rF   ÚmetricsÚmarshall_metric_proto)rI   ÚMetricSetProtoÚ
metric_setr8   rK   Úmetric_familyr>   Úmetric_protos           r   r4   z#StatsRequestHandler._stats_to_protoY   s¾   € õ
	
ñ $Ó%ˆ
à$×+Ñ+Ó-ò 	9ˆEÙØð
 ˜q™ˆJØ&×6Ñ6×:Ñ:Ó<ˆMØ!+×!7Ñ!7ˆMÔÜ!<¸Z¿_¹_Ó!MˆMÔØ!+§¡ˆMÔØ!+§¡ˆMÔàò 9�Ø,×4Ñ4×8Ñ8Ó:�Ø×*Ñ*¨<Õ8ñ9ð	9ð$ Ðr   N)r   r   ÚreturnÚNone)rW   rX   )rI   úMapping[str, Sequence[Stat]]rW   r   )rI   rY   rW   rS   )
Ú__name__Ú
__module__Ú__qualname__r   r#   r(   r!   Ústaticmethodr6   r4   © r   r   r   r       sO   „ ó&óPóó
!ð, ò!ó ð!ð& ðØ5ðà	òó ñr   r   )Ú
__future__r   Útypingr   r   Útornado.webÚtornadoÚstreamlit.runtime.statsr   Ústreamlit.web.serverr   r   Ú streamlit.web.server.server_utilr	   Úcollections.abcr
   r   rM   r   rS   r   r   ÚwebÚRequestHandlerr   r^   r   r   ú<module>ri      s=   ðõ #ç &ã å ?ß SÝ Máß1åVß:ôV˜'Ÿ+™+×4Ñ4õ Vr   