
    5i                        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     t/home/obispo/Crisostomo_bridge/mision_env/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    *,OO93?)=)=)A)A()KKvLOO94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    <<
$,,2B2B B,T<NO
 "//
;''/A+t ( 

 $t||';';'D'DX'NNJJt++E2DDFGOON,DEOOC JJt**512OON,JKOOC 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     A4$,,.As   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MMGJ$:$:#;1Z__<MNOMMGJ$:$:#;1Z__<MNOMMGJOO#456MMA5AA	B 	i yy  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    
	
 $%
$++- 	9E
 qJ&66::<M!+!7!7M!<Z__!MM!+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   