o
    pf                     @   s&   d dl mZ dZ	 dd Zdd ZdS )   )floatToGoStringz:application/openmetrics-text; version=1.0.0; charset=utf-8c                 C   s8   | j dkr|jdrdS | j dv r|jdrdS dS )Ncounter_totalT)	histogramgaugehistogram_bucketF)typenameendswith)metricsample r   a/home/ertert/spirit/venv/lib/python3.10/site-packages/prometheus_client/openmetrics/exposition.py_is_valid_exemplar_metric
   s
   r   c           
      C   s  g }|   D ]}z|j}|d||jdddddd |d| d	|j d |jr?|d
| d	|j d |jD ]|}|j	rZdd
dd t|j	 D }nd}|jrt||smtd|j ddd
dd t|jj	 D }|jjdurd|t|jj|jj}nd|t|jj}nd}d}|jdurd	|j }|d|j|t|j|| qBW q ty }	 z
|	jpd|f |	_ d}	~	ww |d d
|dS )zHReturns the metrics from the registry in latest text format as a string.z# HELP {} {}
\\\
\n"\"z# TYPE  z# UNIT z{{{0}}},c              	   S   4   g | ]\}}d  ||ddddddqS z{}="{}"r   r   r   r   r   r   formatreplace.0kvr   r   r   
<listcomp>    
    z#generate_latest.<locals>.<listcomp> zMetric z8 has exemplars, but is not a histogram bucket or counterc              	   S   r   r   r   r   r   r   r   r!   )   r"   Nz # {} {} {}z # {} {}z{}{} {}{}{}
)r#   z# EOF
zutf-8)collectr	   appendr   documentationr   r   unitsampleslabelsjoinsorteditemsexemplarr   
ValueError	timestampr   value	Exceptionargsencode)
registryoutputr   mnameslabelstrr)   exemplarstrr/   	exceptionr   r   r   generate_latest   sn   




&
r;   N)utilsr   CONTENT_TYPE_LATESTr   r;   r   r   r   r   <module>   s
   