a
    9a                     @   s$   d dl mZ dZdd Zdd ZdS )   )floatToGoStringz:application/openmetrics-text; version=0.0.1; charset=utf-8c                 C   s8   | j dkr|jdrdS | j dv r4|jdr4dS dS )NZcounterZ_totalT)Z	histogramZgaugehistogramZ_bucketF)typenameendswith)metricZsample r   Glib/python3.9/site-packages/prometheus_client/openmetrics/exposition.py_is_valid_exemplar_metric
   s
    r	   c           
      C   s  g }|   D ]}zv|j}|d||jdddddd |d| d	|j d |jr|d
| d	|j d |jD ]}|j	rdd
dd t|j	 D }nd}|jrFt||std|j ddd
dd t|jj	 D }|jjdur0d|t|jj|jj}nd|t|jj}nd}d}|jdurfd	|j }|d|j|t|j|| qW q ty }	 z"|	jpd|f |	_ W Y d}	~	qd}	~	0 0 q|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   s4   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>    s   z#generate_latest.<locals>.<listcomp> zMetric z8 has exemplars, but is not a histogram bucket or counterc              	   S   s4   g | ],\}}d  ||ddddddqS r   r   r   r   r   r   r   )   s   Nz # {} {} {}z # {} {}z{}{} {}{}{}
)r   z# EOF
zutf-8)Zcollectr   appendr   Zdocumentationr   r   Z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   sh    




r+   N)Zutilsr   ZCONTENT_TYPE_LATESTr	   r+   r   r   r   r   <module>   s   