
    d	                         d dl Z 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 e j        dk    rd dl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dS )    N)default_timer)TracebackType)AnyCallableOptionalTypeTYPE_CHECKINGTypeVar)      r   )Literal   decorate)CounterF.)boundc                       e Zd Zdddee         ddfdZddZdeee                  d	ee         d
ee         ddfdZ	ddZ
dS )ExceptionCountercounterr   	exceptionreturnNc                 "    || _         || _        d S N)_counter
_exception)selfr   r   s      Blib/python3.11/site-packages/prometheus_client/context_managers.py__init__zExceptionCounter.__init__   s    #    c                     d S r    r   s    r   	__enter__zExceptionCounter.__enter__   s    r    typvalue	tracebackzLiteral[False]c                 b    t          || j                  r| j                                         dS )NF)
isinstancer   r   incr   r%   r&   r'   s       r   __exit__zExceptionCounter.__exit__   s/    eT_-- 	 Mur    fr   c                 .      fd}t          ||          S )Nc                 L    5   | |i |cd d d            S # 1 swxY w Y   d S r   r"   funcargskwargsr   s      r   wrappedz*ExceptionCounter.__call__.<locals>.wrapped        - -tT,V,,- - - - - - - - - - - - - - - - - -   r   r   r-   r4   s   `  r   __call__zExceptionCounter.__call__   .    	- 	- 	- 	- 	- 7###r    )r   N)r-   r   r   r   )__name__
__module____qualname__r   BaseExceptionr   r$   r   r   r,   r8   r"   r    r   r   r      s        $	 $d=6I $d $ $ $ $   HT-%89 (=BY fno|f}   CS    
$ $ $ $ $ $r    r   c                   &    e Zd Zd Zd Zd Zd ZdS )InprogressTrackerc                     || _         d S r   )_gauge)r   gauges     r   r   zInprogressTracker.__init__&   s    r    c                 8    | j                                          d S r   )rA   r*   r#   s    r   r$   zInprogressTracker.__enter__)       r    c                 8    | j                                          d S r   )rA   decr+   s       r   r,   zInprogressTracker.__exit__,   rD   r    c                 .      fd}t          ||          S )Nc                 L    5   | |i |cd d d            S # 1 swxY w Y   d S r   r"   r0   s      r   r4   z+InprogressTracker.__call__.<locals>.wrapped0   r5   r6   r   r7   s   `  r   r8   zInprogressTracker.__call__/   r9   r    N)r:   r;   r<   r   r$   r,   r8   r"   r    r   r?   r?   %   sP              $ $ $ $ $r    r?   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )Timerc                 "    || _         || _        d S r   )_metric_callback_name)r   metriccallback_names      r   r   zTimer.__init__8   s    +r    c                 B    |                      | j        | j                  S r   )	__class__rL   rM   r#   s    r   
_new_timerzTimer._new_timer<   s    ~~dlD,?@@@r    c                 ,    t                      | _        | S r   )r   _startr#   s    r   r$   zTimer.__enter__?   s    #oor    c                     t          t                      | j        z
  d          }t          | j        | j                  } ||           d S )Nr   )maxr   rT   getattrrL   rM   )r   r%   r&   r'   durationcallbacks         r   r,   zTimer.__exit__C   sF    }4a884<)<==r    c                 4     | j         j        |i || _         d S r   )rL   labels)r   r2   kws      r   r[   zTimer.labelsI   s!    *t|*D7B77r    c                 .      fd}t          ||          S )Nc                 p                                     5   | |i |cd d d            S # 1 swxY w Y   d S r   )rR   r0   s      r   r4   zTimer.__call__.<locals>.wrappedM   s     "" - -tT,V,,- - - - - - - - - - - - - - - - - -s   +//r   r7   s   `  r   r8   zTimer.__call__L   s.    	- 	- 	- 	- 	- 7###r    N)	r:   r;   r<   r   rR   r$   r,   r[   r8   r"   r    r   rJ   rJ   7   sq        , , ,A A A    8 8 8$ $ $ $ $r    rJ   )systimeitr   typesr   typingr   r   r   r   r	   r
   version_infor   	decoratorr    r   r   r   r?   rJ   r"   r    r   <module>rf      sO   



                   H H H H H H H H H H H H H H H Hy         /8CH-...A$ $ $ $ $ $ $ $*$ $ $ $ $ $ $ $$$ $ $ $ $ $ $ $ $ $r    