bgXddlmZddlZddlmZddlmZ ddlZn#e$rddl ZYnwxYwdZ ddd d Z d Z ej d Zej d ZdZdZdZdZdZdZdZdS))unicode_literalsN)Metric)Samplec#ZKttj|D]}|VdS)z]Parse Prometheus text format from a unicode string. See text_fd_to_metric_families. N)text_fd_to_metric_familiesStringIO)text metric_familys i/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/prometheus_client/parser.pytext_string_to_metric_familiesr sC 4H4Ed4K4KLL \ ")z\\z\nz\"cBt|dS)Nr)ESCAPE_SEQUENCESgroup)matchs r replace_escape_sequencers EKKNN ++rz\\[\\n]z\\[\\n"]cBtt|SN)HELP_ESCAPING_REsubrss r _replace_help_escapingr's    7 ; ;;rcBtt|Sr) ESCAPING_RErrrs r _replace_escapingr +s ??2A 6 66rcd}||kr/||dz |z dkr|dz }||kr||dz |z dk|dzdkS)Nrrr)rcharpos num_bslashess r _is_character_escapedr&/skL \ ! ! Wq[< ' (D 0 0  \ ! ! Wq[< ' (D 0 0 ! q  rci}d|vr|Sd}d|vrd}|} |r/|d}|d|}||dzd}|ddz}||d}d}|t|kr?|d|}t||sn|dz }|t|k?|dz} ||| } |rt | } | ||<|| dzd}|ddz} || d}|/|S#t$rtd |zwxYw) N=FrTrrr,zInvalid labels: %s)indexlstriplenr&r stripfind ValueError) labels_stringlabelsescaping sub_labels value_start label_name quote_start value_substri quote_end label_value next_commas r _parse_labelsr<7s F - H }J#? :$**3//K#L[L1J#K!O$4$45<<>>J$**3//!3K%kll3LAc,'''' &&sA..,\1==Q c,''''AI$[%:;K =/ << )4F:##%% &$IMNN3J#--1J#JKK07799J9 :< ???- =>>>?s D3EE%c*|}d}||vrd}d||D}|st|dfSt|d}t|dkrt|ddz nd}||fS)N  c^g|]*}||+Sr#)r-).0values r z._parse_value_and_timestamp..os- M M Mu{{}} Mekkmm M M Mrrri)r+splitfloatr,)r separatorvaluesrB timestamps r _parse_value_and_timestamprJjs  AI M M);); M M MF Qxx~ &)  E,/KK!OOvbz""4''I ) rc |d|d}}|d|}||dz|}t||dzd\}}t |t |||S#t $rVd}||vrd}||}|d|}t||d\}}t |i||cYSwxYw)N{}rr"r>r?)r*rindexr-rJrr<r/) r label_start label_endnamelabelrBrIrGname_ends r _parse_samplerTws2!%C$++c2B2BY L[L!''))[1_Y./5d9q=>>6JKKydM%00%CCC  2 2 2 D I::i((IXI5d899oFFydBy11111 2sBBAC10C1c# Kd d}d}g}g}d}|D]}|}|dr|dd}t|dkrW|dd krc|d kr+ dkr| |||V|d d}g}|dg}t|d krt |d}d}|dd krh|d kr" dkr| |||V|d d}g}|d}dgdggd gd d|dg} fd|D}:<|dkrDt |}|j|vr9 dkr| |||Vd d}d}g}g}||d|||gV|| dkr| |||VdSdS)zParse Prometheus text format from a file descriptor. This is a laxer parser than the main Go parser, so successful parsing does not imply that the parsed text meets the specification. Yields Metric's. untypedc |dkrZ|dr |dd}n:g}|D]5}|t|ddzg|ddR|}6t|||}||_|S)Ncounter_totalirr)endswithappendrrsamples)rQ documentationtypr] new_samplesrmetrics r build_metricz0text_fd_to_metric_families..build_metrics )  }}X&& *CRCy  **A&&vadXo'F!""'F'F'FGGG)GGmS11  r#Nr"rHELPTYPE)_count_sumrV)rhri_bucket)rYgaugesummary histogramcg|]}|zSr#r#)rAnrQs r rCz.text_fd_to_metric_families..s A A Aa A A Arr) r- startswithrEr,rgetrTrQr\) fdr^r_r] allowed_namesrblinepartssamplerQs @r rrs DM CGM   7'7'zz|| ??3  4 'JJtQ''E5zzA~~Qx6!!8t##rzz*l4WMMMMM 8D#C G%*1XJMu::??$:58$D$DMM$&MMqV##8t##rzz*l4WMMMMM 8D$&M GAh "t T555!>!>!> !! #cB4..  !B A A A= A A A  RZZ "4((F{-//2::&,t]CIIIII "  " "l6!9mS6(KKKKKKv&&&& rzzl4W=======zr) __future__rre metrics_corerr]rr ImportErrorior rrcompilerrrr r&r<rJrTrr#rr r}sU'''''' OOOO    ,,,2:j))bj%% <<<777!!!/?/?/?f   2222X>X>X>X>X>s  ))