o
    tf                     @   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counterZ_totalT)Z	histogramZgaugehistogramZ_bucketF)typenameendswith)metricsample r	   q/var/www/html/software/conda/envs/catlas/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)Zcollectr   appendr   Zdocumentationr   r   unitZsampleslabelsjoinsorteditemsZexemplarr   
ValueError	timestampr   value	Exceptionargsencode)
registryoutputr   ZmnamesZlabelstrr"   Zexemplarstrr'   	exceptionr	   r	   r
   generate_latest   sn   




&
r0   N)utilsr   ZCONTENT_TYPE_LATESTr   r0   r	   r	   r	   r
   <module>   s
   