Viewing File: /opt/hc_python/lib/python3.12/site-packages/prometheus_client/__pycache__/parser.cpython-312.pyc

�

_��g
��d�ddlZddlZddlmZmZmZmZmZm	Z	m
Z
ddlmZddl
mZdedeefd�Zd	d
dd�Zd
eedefd�Zej&d�Zej&d�Zdedefd�Zdedefd�Zdededefd�Zdedeeeffd�Zdede
eeeffd�Zdedefd�Zde	deefd�Zy)�N)�Dict�Iterable�List�Match�Optional�TextIO�Tuple�)�Metric)�Sample�text�returnc#�\K�ttj|��Ed{���y7��w)z]Parse Prometheus text format from a unicode string.

    See text_fd_to_metric_families.
    N)�text_fd_to_metric_families�StringIO)r
s �G/opt/hc_python/lib/python3.12/site-packages/prometheus_client/parser.py�text_string_to_metric_familiesr	s!����
*�(�*;�*;�D�*A�B�B�B�s�",�*�,�\�
�")z\\z\nz\"�matchc�2�t|jd�S)Nr)�ESCAPE_SEQUENCES�group)rs r�replace_escape_sequencers���E�K�K��N�+�+�z\\[\\n]z\\[\\n"]�sc�6�tjt|�S�N)�HELP_ESCAPING_RE�subr�rs r�_replace_help_escapingr# s����� 7��;�;rc�6�tjt|�Sr)�ESCAPING_REr!rr"s r�_replace_escapingr&$s���?�?�2�A�6�6r�charposc�n�d}||kDr'||dz
|z
dk(r|dz
}||kDr||dz
|z
dk(r�|dzdk(S)Nrr
r��)rr'�num_bslashess   r�_is_character_escapedr,(s_���L��\�!���1��|�+�,��4������\�!���1��|�+�,��4��!��q� � r�
labels_stringc�.�i}d|vr|Sd}d|vrd}|}	|r�|jd�}|d|}||dzdj�}|jd�dz}||d}d}|t|�kr3|jd|�}t||�sn|dz
}|t|�kr�3|dz}	|||	}
|rt	|
�}
|
||j�<||	dzd}|j
d�dz}||dj�}|r��|S#t$rtd	|z��wxYw)
N�=FrTr
rr�,zInvalid labels: %s)�index�lstrip�lenr,r&�strip�find�
ValueError)r-�labels�escaping�
sub_labels�value_start�
label_name�quote_start�value_substr�i�	quote_end�label_value�
next_commas            r�
_parse_labelsrB0st���F�
�-���
��H��}�����J�#?��$�*�*�3�/�K�#�L�[�1�J�#�K�!�O�$4�5�<�<�>�J�$�*�*�3�/�!�3�K�%�k�l�3�L��A��c�,�'�'� �&�&�s�A�.��,�\�1�=���Q���	�c�,�'�'��A��I�$�[��;�K��/��<��)4�F�:�#�#�%�&�$�I��M�N�3�J�#����-��1�J�#�J�K�0�7�7�9�J�9�<�
���?��-�
�=�>�>�?�s�B	C<�AC<�:C<�<Dc�:�|j�}d}||vrd}|j|�D�cgc]#}|j�s�|j���%}}|s
t|�dfSt|d�}t	|�dkDrt|d�dznd}||fScc}w)N� �	rr
���i�)r2�splitr4�floatr3)r�	separator�value�values�	timestamps     r�_parse_value_and_timestamprMcs���	���
�A��I�����	�)*����);�
M�);��u�{�{�}�e�k�k�m�);�F�
M���Q�x��~���&��)��E�.1�&�k�A�o��v�b�z�"�T�)�4�I��)����Ns�B�Bc�l�	|jd�|jd�}}|d|j�}||dz|}t||dzd�\}}t	|t|�||�S#t$r@d}||vrd}|j|�}|d|}t||d�\}}t	|i||�cYSwxYw)N�{�}r
rDrE)r1�rindexr4rMrrBr6)	r
�label_start�	label_end�name�labelrJrLrI�name_ends	         r�
_parse_samplerWps���2�!%���C��$�+�+�c�2B�Y���L�[�!�'�'�)���[�1�_�Y�/��5�d�9�q�=�>�6J�K���y��d�M�%�0�%��C�C���	2��	��D� ��I��:�:�i�(���I�X���5�d�8�9�o�F���y��d�B��y�1�1�	2�s�A'A*�*AB3�2B3�fdc
#�\K�d}d}d}g}g}dtdtdtdttdtf
d�}|D�]W}|j	�}|jd	�r�|j
d
d�}t|�dkr�F|d
dk(rI|d|k7r!|dk7r
|||||���|d}d}g}|dg}t|�dk(rt|d�}��d}��|d
dk(rY|d|k7r|dk7r
|||||���|d}d}g}|d}dgdggd�gd�d�j|dg�}|D�	cgc]}	||	z��	}}	����|dk(r��t|�}
|
j|vr/|dk7r
|||||���d}d}d}g}g}||
d|||
g�����G|j|
���Z|dk7r|||||���y
y
cc}	w�w)z�Parse 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.
    ��untypedrT�
documentation�typ�samplesrc	���|dk(rF|jd�r|dd}n/g}|D](}|jt|ddzg|dd����|}�*t|||�}||_|S)N�counter�_totali����rr
)�endswith�appendrrr^)rTr\r]r^�new_samplesr�metrics       r�build_metricz0text_fd_to_metric_families.<locals>.build_metric�sy���)���}�}�X�&��C�R�y�� �� �A��&�&�v�a��d�X�o�'F��!�"��'F�G�)�G�!���m�S�1�� ����
r�#N�r)r
�HELP��TYPE)�_count�_sumrZ)rlrm�_bucket)r`�gauge�summary�	histogramr)
�strrrrr4�
startswithrGr3r#�getrWrTrc)rXrTr\r]r^�
allowed_namesrf�line�parts�n�samples           rrr�s+�����D��M�
�C��G��M�
�3�
�s�
��
�t�F�|�
�X^�
����z�z�|���?�?�3���J�J�t�Q�'�E��5�z�A�~���Q�x�6�!���8�t�#��r�z�*�4���W�M�M� ��8�D�#�C� �G�%*�1�X�J�M��u�:��?�$:�5��8�$D�M�$&�M��q��V�#���8�t�#��r�z�*�4���W�M�M� ��8�D�$&�M� �G��A�h�� "�t� �T�5�!>�	!�
�#�c�B�4�.��4A� A�=�a����=�
� A��
�R�Z��"�4�(�F��{�{�-�/��2�:�&�t�]�C��I�I��� "�
����� "�
�"�6�!�9�m�S�6�(�K�K����v�&�o�r�r�z��4���W�=�=���-!B�s�DF,�!F'�-A?F,) �ior�re�typingrrrrrrr	�metrics_corerr^rrrrrr�compiler r%r#r&�int�boolr,rBrHrMrWrr*rr�<module>r�s-���	�G�G�G� ��C��C��&�1A�C�
�����,�5��:�,�#�,��2�:�:�j�)���b�j�j��%��<�c�<�c�<�7��7��7�!�S�!�3�!�4�!�/?��/?��c�3�h��/?�f
�#�
�%��x���0F�*G�
�2��2��2�2X>�6�X>�h�v�.>�X>r
Back to Directory File Manager