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

�

_��g�=��.�dZddlmZddlZddlZddlZddlZddlZddlZdZ	ejdk\r
ddlmZd�ZnGd�d	e
�Zd
�Zejdd�Zd
�Zej"d�ZGd�de
�Zd�Zdd�Z	ddlmZGd�de�Zeej6�Zeej<�Zedk(rej@sd�Zee_n!edk(r
ej@rnedk(r
d�Zee_ee�Z!d�Z"d�Z#y#e$r	ddlmZY��wxYw)zT
Decorator module, see http://pypi.python.org/pypi/decorator
for the documentation.
�)�print_functionNz4.0.10��)�getfullargspecc��|jS�N)�__init__��clss �J/opt/hc_python/lib/python3.12/site-packages/prometheus_client/decorator.py�get_initr
1s���|�|��c�4�eZdZdZd�Zd�ZejZy)rz?A quick and dirty replacement for getfullargspec for Python 2.Xc�|�tj|�\|_|_|_|_g|_d|_yr)�inspect�
getargspec�args�varargs�varkw�defaults�
kwonlyargs�kwonlydefaults)�self�fs  rr	zgetfullargspec.__init__7s4���"�"�1�%�
?�D�I�t�|�T�Z��� �D�O�"&�D�rc#�|K�|j��|j��|j��|j��y�wr)rrrr)rs r�__iter__zgetfullargspec.__iter__=s-�����)�)�O��,�,���*�*���-�-��s�:<N)�__name__�
__module__�__qualname__�__doc__r	rrr�rrrr4s��I�	'�	 ��'�'�
rrc�.�|jjSr)r	�__func__r
s rr
r
Fs���|�|�$�$�$r�ArgSpeczargs varargs varkw defaultsc��t|�}t|j|j|j|j
�S)z$A replacement for inspect.getargspec)rr$rrrr)r�specs  rrrNs-���!��D��4�9�9�d�l�l�D�J�J��
�
�F�Frz\s*def\s*([_\w][_\w\d]*)\s*\(c�b�eZdZdZej
�Z		dd�Zd�Zdd�Z	e
		d	d��Zy)
�
FunctionMakerz�
    An object with the ability to create functions with a given signature.
    It has attributes name, doc, module, signature, defaults, dict and
    methods update and make.
    Nc	��||_|�r_|j|_|jdk(rd|_|j|_|j
|_tj|��rt|�}t|di�|_dD]}	t||	t||	���t|j�D]\}
}t|d|
z|��tj dkr'tj"|dd�i�d	d
x|_|_�n?t'|j�}t'|j�}
|j(r=|j+d|j(z�|
j+d|j(z�n|j,r|j+d�|j,D],}	|j+d|	z�|
j+|	�d
|	����.|j.r<|j+d|j.z�|
j+d|j.z�dj1|�|_dj1|
�|_|j2j5�|_|r||_|�||_|r||_|r||_|r||_|r||_t;|d�sJ�t;|d�st=d|z��y)N�<lambda>�_lambda_�__annotations__)rrrrrrzarg%dr�formatvaluec��y)N�r!)�vals r�<lambda>z(FunctionMaker.__init__.<locals>.<lambda>ws��Br�����*z%s=None�=z**�, �name�	signaturez%You are decorating a non function: %s)�shortsignaturerr7r �docr�moduler�
isfunctionr�getattr�annotations�setattr�	enumerater�sys�version_info�
formatargspecr8�listr�appendrr�join�__dict__�copy�dictr�hasattr�	TypeError)r�funcr7r8rr:r;�funcdict�argspec�a�i�arg�allargs�allshortargss              rr	zFunctionMaker.__init__bsb��'�����
�
�D�I��y�y�J�&�&��	��|�|�D�H��/�/�D�K��!�!�$�'�(��.��#*�4�1B�B�#G�� �,�A��D�!�W�W�a�%8�9�,�(��	�	�2�F�A�s��D�'�A�+�s�3�3��#�#�d�*��-�-�9@�B�(6�B�BC�B�H�I�D�'�$�.�#�4�9�9�o�G�#'��	�	�?�L��|�|����s�T�\�\�'9�:�$�+�+�C�$�,�,�,>�?�������s�+�!�_�_�����y�1�}�5�$�+�+�q�!�,<�=�-��z�z����t�d�j�j�'8�9�$�+�+�D�4�:�:�,=�>�%)�Y�Y�w�%7�D�N�*.�)�)�L�*A�D�'� �M�M�.�.�0��	���D�I�� �&�D�N��$�D�M���D�H�� �D�K�� �D�I��t�V�$�$�$��t�[�)��C�d�J�K�K�*rc��|j|_t|dd�|_t|di�|_t|dd�|_t|dd�|_t|dd�|_	tjd�}|jjd	d
�}t|d|�|_
|jj|�y#t$rd
}Y�;wxYw)z2Update the signature of func with the data in selfr:NrIrr!rr>rr�?r;)r7rr=r rG�__defaults__�__kwdefaults__r,rA�	_getframe�	f_globals�get�AttributeErrorr�update)rrL�kw�frame�callermodules     rr\zFunctionMaker.update�s����	�	��
��t�U�D�1�����f�b�1��
�#�D�*�b�9���%�d�,<�d�C���&�t�]�D�A���	@��M�M�!�$�E�!�?�?�.�.�z�3�?�L�!�$��,�?����
�
���R� ���	��L�	�s�-C�C�Cc	��|t|�z}|xsi}tj|�}|�td|z��|j	d�}t|g|jjd�D�cgc]}|jd���c}z�}	|	D]}
|
dvs�t|
�d|����|jd�s|dz
}dt|j�fz}	t||d	�}t||�||}
|r||d<|j$|
fi|��|
Scc}w#td
t j"��t|t j"���xYw)
zBMake a new function from a given template and update the signaturez not a valid function template
%sr2�,z *)�_func_�_call_z is overridden in
�
z<decorator-gen-%d>�singlezError in generated code:)�file�
__source__)�vars�DEF�match�SyntaxError�group�setr9�split�strip�	NameError�endswith�next�_compile_count�compile�exec�printrA�stderrr\)r�	src_templ�evaldict�	addsource�attrs�src�mor7rQ�names�n�filename�coderLs              r�makezFunctionMaker.make�s]���$�t�*�$���>�r��
�Y�Y�s�^��
�:��A�C�G�H�H��x�x��{���T�F�"�1�1�7�7��<�>�<�36�c�i�i��o�<�>�>�?���A��(�(��Q�� D�E�E���|�|�D�!��4�K�C�
(�4��0C�0C�+D�*F�F��	��3��(�3�D���x� �
��~���"%�E�,������D�"�E�"����1>�� 	��,�3�:�:�>��#�C�J�J�'��s�/D
�D�9Ec��t|t�r+|j�jdd�\}	}
|
dd}d}nd}	d}|}|||	||||�}
dj	d�|j�D��}|
jd|z||fi|��S)z�
        Create a function from the strings name, signature and body.
        evaldict is the evaluation dictionary. If addsource is true an
        attribute __source__ is added to the result. The attributes attrs
        are added, if any.
        �(r2Nr3rdc3�&K�|]	}d|z���y�w)z    Nr!)�.0�lines  r�	<genexpr>z'FunctionMaker.create.<locals>.<genexpr>�s����F�4E�D�&�4�-�4E�s�zdef %(name)s(%(signature)s):
)�
isinstance�strrornrF�
splitlinesr�)r�obj�bodyryrr:r;rzr{r7�restr8rLr�ibodys               r�createzFunctionMaker.create�s����c�3������*�*�3��2�J�D�$��S�b�	�I��D��D��I��D��4��y�(�C��@���	�	�F�D�O�O�4E�F�F���t�y�y�9�E�A�!�9�7�05�7�	7r)NNNNNNN)NF)NNNT)rrrr �	itertools�countrsr	r\r��classmethodr�r!rrr(r(XsI���%�Y�_�_�&�N�7;�@D�7L�r!�" �D�26�04�7��7rr(c��t||��}tj|d||��}t|d�r|j|_|S)zE
    decorate(func, caller) decorates a function using a caller.
    )rcrbz)return _call_(_func_, %(shortsignature)s)��__wrapped__r)rIr(r�rJr)rL�callerry�funs    r�decorater��sO���6�$�/�H�
�
�
��9��d��$�C��t�^�$��,�,����Jrc��|�t||�Stj|�r8|jj	�}d|j�d|j�d�}nztj
|�r+|jdk(rd}n|j}|j}n:|jjj	�}|jj}t|t��}tjd|zd|||j|�	�S)
z=decorator(caller) converts a caller function into a decoratorz
decorator(z2) converts functions/generators into factories of z objectsr*r+)rc�
_decorate_z%s(func)zreturn _decorate_(func, _call_))r:r;r�)
r�r�isclassr�lowerr<r �	__class__�__call__rIr(r�r)r��_funcr7r:rys     r�	decoratorr��s�������v�&�&����v�����$�$�&��+1�?�?�F�O�O�M��	�	�	�F�	#��?�?�j�(��D��?�?�D��n�n�����(�(�.�.�0���o�o�%�%���6�h�7�H�����T��<��c�&�"3�"3�� ��r)�_GeneratorContextManager)�GeneratorContextManagerc��eZdZd�Zy)�ContextManagerc�J�tj|dt||��|��S)zContext manager decoratorz.with _self_: return _func_(%(shortsignature)s))�_self_rbr�)r(r�rI)rrLs  rr�zContextManager.__call__s,���#�#��B���T�*��$�>�	>rN)rrrr�r!rrr�r�s��>rr��c�:�tj|||i|���Sr�r�r	�r�grO�ks    rr	r	s��'�0�0��q�!�z�q�z�B�Br�c�2�tj||||�Srr�r�s    rr	r	's��'�0�0��q�!�Q�?�?rc��d}t|�D])\}}t||�rd}nt||�s�#|||<d}�+|r|j|�yy)z_
    Append ``a`` to the list of the virtual ancestors, unless it is already
    included.
    TFN)r@�
issubclassrE)rO�
vancestors�add�j�vas     rrErE2s^��
�C��:�&���2��b�!���C���a����J�q�M��C�
'�����!��rc������sJd��ddj��z�tjdf�fd�	����fd�}d�z|_|S)zr
    Factory of decorators turning a function into a generic function
    dispatching on the given arguments.
    zNo dispatch args passedz(%s,)r6r/c���|t|�t���r#tdt��t|�|fz��y)z5Make sure one passes the expected number of argumentszExpected %d arguments, got %d%sN)�lenrK)�	arguments�wrong�msg�
dispatch_argss   �r�checkzdispatch_on.<locals>.checkLsF�����Y���]�!3�4��=� ��/��Y���E�F�G�
G�5rc�������tt��j�}t�	�|kstd�
z��i���	�fd����fd����fd�}��fd�}���fd�}tj�d�
zt
|��|����|��	�
S)
z4Decorator turning a function into a generic functionzUnknown dispatch arguments %sc�&���|�tt���D�cgc]}g��}}�	D]@}t|||�D].\}}}t||�s�||jvs�#t||��0�B|D�cgc]
}t
|���c}Scc}wcc}w)zU
            Get a list of sets of virtual ancestors for the given types
            )�ranger��zipr��__mro__rErm)
�types�_�ras�types_�t�type_�rar�r��typemaps
       ���rr�z5dispatch_on.<locals>.gen_func_dec.<locals>.vancestors\s����
�%�L�$�S��%7�8�9�8�!�2�8�C�9�!��$'��v�s�$;�L�A�u�b�!�!�U�+��Q�Y�Y�0F��u�b�)�%<�"�'*�*�c��C��G�c�*�*��:��
+s�	B	�4Bc����|�g}t|�|��D]l\}}t|�}|dkDrtd|�d|����|dk(r!|\}td||fi�jdd}n|j}|j|dd��n|S)zG
            Get a list of virtual MROs, one for each type
            r2zAmbiguous dispatch for z: r�Nr3)r�r��RuntimeError�typer�rE)	r��listsr��vas�n_vasr��mror�r�s	       ��r�	ancestorsz4dispatch_on.<locals>.gen_func_dec.<locals>.ancestorshs����
�%�L��E��e�Z��%7�8���3��C����1�9�&�;<�c�B�D�D��a�Z��C�B��s�Q��G�R�0�8�8���<�C��)�)�C����S��"�X�&�9��Lrc�(���������fd�}|S)zU
            Decorator to register an implementation for the given types
            c����t|�jtjd|jz�|��<|S)Nz in )rr�operator�ltr)rr�r�r�s ���r�decz@dispatch_on.<locals>.gen_func_dec.<locals>.register.<locals>.dec�s5����n�Q�'�,�,�h�k�k�6�A�J�J�;N�O�!"�����rr!)r�r�r�r�s` ��r�registerz3dispatch_on.<locals>.gen_func_dec.<locals>.register{s���
�%�L�
�
�Jrc����|�g}tj�|��D]#}|jtd�|D����%|S)zI
            An utility to introspect the dispatch algorithm
            c3�4K�|]}|j���y�wr)r)r�rOs  rr�zKdispatch_on.<locals>.gen_func_dec.<locals>.dispatch_info.<locals>.<genexpr>�s���� 9�S�����S�s�)r��productrE�tuple)r��lst�ancr�r�s   ��r�
dispatch_infoz8dispatch_on.<locals>.gen_func_dec.<locals>.dispatch_info�sG���
�%�L��C� �(�(�)�U�*;�<���
�
�5� 9�S� 9�9�:�=��Jrc���td�|D��}	�	|}||i|��S#t$rYnwxYwtj�|��}t	|�|D]}�	j|�}|��||i|��cS�|i|��S)Nc3�2K�|]}t|����y�wr)r�)r�rQs  rr�zGdispatch_on.<locals>.gen_func_dec.<locals>._dispatch.<locals>.<genexpr>�s����=�}��$�s�)�}�s�)r��KeyErrorr�r�rrrZ)
r�rr]r�r�combinationsr�r�rLr�s
       ���r�	_dispatchz4dispatch_on.<locals>.gen_func_dec.<locals>._dispatch�s�����=�}�=�=�E�
&��E�N���$�~�"�~�%���
��
��%�,�,�i��.?�@�L����&���K�K��'���=��d�>�b�>�)�'���$��$�$s�"�	.�.z#return _f_(%s, %%(shortsignature)s))�_f_)r��defaultr�r�r�r�r�)rmrrrpr(r�rI)rL�argsetr�r�r�r�r�r�r�r��dispatch_strs`    @@@���r�gen_func_decz!dispatch_on.<locals>.gen_func_decRs�����^�D�)�.�.�/���=�!�V�+��;�l�J�K�K���
	+�	�&	�	�	%�$�#�#��7�,�F��Y��(�D��
�i�'�T�	$�;�	;r�dispatch_on)rFr��ner)r�r�r�r�s` @@rr�r�DsQ���
�3�3�3�=��T�Y�Y�}�5�5�L�'�{�{��G�V;�p*�L�8�L���rr)$r �
__future__r�collectionsrr�r��rerA�__version__rBrr
�object�
namedtupler$rrtrir(r�r��
contextlibr��ImportErrorr�r�r	�initr�r�n_argsr�contextmanagerrEr�r!rr�<module>r�s?��<�&�����	�
������t��&��(��(�$%�!�+�
 �
 �
�,�.��G��b�j�j�1�2��J7�F�J7�Z
��8O�3�
>�-�>��.�7�7�8��	�T�Y�Y���	�Q�;�t�|�|�C�'�N���q�[�T�\�\���q�[�@�'�N���>�*��
�$g��i�O�N�O�s�D�D�D
Back to Directory File Manager