
    Xh'	                         d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ ddlmZ erddlmZ  ededef   	      Z G d
 d      Z G d d      Z G d d      Zy)    )default_timer)TracebackType)	AnyCallableLiteralOptionalTupleTypeTYPE_CHECKINGTypeVarUnion   decorate)CounterF.)boundc            	           e Zd Zdddeee   eee   df   f   ddfdZddZd	e	ee      d
e	e   de	e
   ded   fdZddZy)ExceptionCountercounterr   	exception.returnNc                      || _         || _        y N)_counter
_exception)selfr   r   s      V/var/www/html/myenv/lib/python3.12/site-packages/prometheus_client/context_managers.py__init__zExceptionCounter.__init__   s    #    c                      y r    r   s    r   	__enter__zExceptionCounter.__enter__   s    r    typvalue	tracebackFc                 d    t        || j                        r| j                  j                          y)NF)
isinstancer   r   incr   r%   r&   r'   s       r   __exit__zExceptionCounter.__exit__   s#    eT__-MMr    c                 &      fd}t        ||      S )Nc                 D    5   | |i |cd d d        S # 1 sw Y   y xY wr   r"   funcargskwargsr   s      r   wrappedz*ExceptionCounter.__call__.<locals>.wrapped   (     -T,V,- - -   r   r   fr3   s   `  r   __call__zExceptionCounter.__call__       	- 7##r    )r   Nr7   r   r   r   )__name__
__module____qualname__r   r
   BaseExceptionr	   r   r$   r   r   r   r,   r8   r"   r    r   r   r      s    $	 $eD<OQVW[\iWjloWoQp<p6q $vz $HT-%89 (=BY fno|f}   CJ  KP  CQ 
$r    r   c                   &    e Zd Zd Zd Zd ZddZy)InprogressTrackerc                     || _         y r   )_gauge)r   gauges     r   r   zInprogressTracker.__init__%   s	    r    c                 8    | j                   j                          y r   )rB   r*   r#   s    r   r$   zInprogressTracker.__enter__(       r    c                 8    | j                   j                          y r   )rB   decr+   s       r   r,   zInprogressTracker.__exit__+   rE   r    c                 &      fd}t        ||      S )Nc                 D    5   | |i |cd d d        S # 1 sw Y   y xY wr   r"   r/   s      r   r3   z+InprogressTracker.__call__.<locals>.wrapped/   r4   r5   r   r6   s   `  r   r8   zInprogressTracker.__call__.   r9   r    Nr:   )r;   r<   r=   r   r$   r,   r8   r"   r    r   r@   r@   $   s    $r    r@   c                   2    e Zd Zd Zd Zd Zd Zd ZddZy)	Timerc                      || _         || _        y r   )_metric_callback_name)r   metriccallback_names      r   r   zTimer.__init__7   s    +r    c                 N    | j                  | j                  | j                        S r   )	__class__rM   rN   r#   s    r   
_new_timerzTimer._new_timer;   s    ~~dllD,?,?@@r    c                 $    t               | _        | S r   )r   _startr#   s    r   r$   zTimer.__enter__>   s    #or    c                     t        t               | j                  z
  d      }t        | j                  | j
                        } ||       y )Nr   )maxr   rU   getattrrM   rN   )r   r%   r&   r'   durationcallbacks         r   r,   zTimer.__exit__B   s7    }4a84<<)<)<=r    c                 F     | j                   j                  |i || _         y r   )rM   labels)r   r1   kws      r   r\   zTimer.labelsH   s    *t||**D7B7r    c                 &      fd}t        ||      S )Nc                 `    j                         5   | |i |cd d d        S # 1 sw Y   y xY wr   )rS   r/   s      r   r3   zTimer.__call__.<locals>.wrappedL   s1     " -T,V,- - -s   $-r   r6   s   `  r   r8   zTimer.__call__K   s    	- 7##r    Nr:   )	r;   r<   r=   r   rS   r$   r,   r\   r8   r"   r    r   rK   rK   6   s!    ,A8$r    rK   N)timeitr   typesr   typingr   r   r   r   r	   r
   r   r   r   	decoratorr    r   r   r   r@   rK   r"   r    r   <module>re      sX        
  8CH-.A$ $*$ $$$ $r    