
    g9                        d dl mZ d dlmZ d dlZd dlmZ d dlm	Z	 erd dl
mZ d dlmZmZ  G d d	ej                   j"                        Zy)
    )annotations)TYPE_CHECKINGN)allow_cross_origin_requests) emit_endpoint_deprecation_notice	MetricSet)	CacheStatStatsManagerc                  L    e Zd ZddZd Zd Zd	dZed
d       Zedd       Z	y)StatsRequestHandlerc                    || _         y N)_manager)selfstats_managers     _/var/www/openai/venv/lib/python3.12/site-packages/streamlit/web/server/stats_request_handler.py
initializezStatsRequestHandler.initialize   s	    %    c                >    t               r| j                  dd       y y )NzAccess-Control-Allow-Origin*)r   
set_headerr   s    r   set_default_headersz'StatsRequestHandler.set_default_headers!   s    &(OO93? )r   c                F    | j                  d       | j                          y)z+/OPTIONS handler for preflight CORS checks.   N)
set_statusfinishr   s    r   optionszStatsRequestHandler.options%   s    r   c                V   | j                   j                  r%d| j                   j                  vrt        | d       | j                  j	                         }d| j                   j
                  j                  d      v rR| j                  | j                  |      j                                | j                  dd       | j                  d       y | j                  | j                  | j                  j	                                      | j                  dd       | j                  d       y )	Nz_stcore/z/_stcore/metrics)new_pathzapplication/x-protobufAcceptzContent-Type   zapplication/openmetrics-text)requesturir   r   	get_statsheadersget_listwrite_stats_to_protoSerializeToStringr   r   _stats_to_text)r   statss     r   getzStatsRequestHandler.get*   s    <<
$,,2B2B B,T<NO'') $t||';';'D'DX'NNJJt++E2DDFGOON,DEOOC JJt**4==+B+B+DEFOON,JKOOC r   c                    d}d}d}d}|||g}|j                  d | D               |j                  |       dj                  |      S )Nz# TYPE cache_memory_bytes gaugez# UNIT cache_memory_bytes bytesz(# HELP Total memory consumed by a cache.z# EOF
c              3  <   K   | ]  }|j                           y wr   )to_metric_str).0stats     r   	<genexpr>z5StatsRequestHandler._stats_to_text.<locals>.<genexpr>D   s     =utd((*us   
)extendappendjoin)r,   metric_typemetric_unitmetric_helpopenmetrics_eofresults         r   r+   z"StatsRequestHandler._stats_to_text;   sQ    77@# {K8=u==o&yy  r   c                @   ddl m} ddl m}  |       }|j                  j	                         }d|_        ||_        d|_        d|_        | D ]-  }|j                  j	                         }|j                  |       /  |       }|j                  j                  |       |S )Nr   )GAUGEr   cache_memory_bytesbytesz!Total memory consumed by a cache.)*streamlit.proto.openmetrics_data_model_pb2r>   r   metric_familiesaddnametypeunithelpmetricsmarshall_metric_protor6   )r,   r>   MetricSetProto
metric_setmetric_familyr2   metric_protos          r   r)   z#StatsRequestHandler._stats_to_protoI   s     	E	
 $%
"226681"$@D(00446L&&|4  $%
""))-8r   N)r   r
   returnNone)rN   rO   )r,   list[CacheStat]rN   str)r,   rP   rN   rJ   )
__name__
__module____qualname__r   r   r   r-   staticmethodr+   r)    r   r   r   r      s?    &@
!" ! !  r   r   )
__future__r   typingr   tornado.webtornadostreamlit.web.serverr    streamlit.web.server.server_utilr   rA   r   rJ   streamlit.runtime.statsr	   r
   webRequestHandlerr   rV   r   r   <module>r`      s7    #    < MV?B'++44 Br   