U mf' @sddlmZddlmZddlmZmZmZmZm Z m Z m Z m Z m Z ddlmZe rtddlmZe dedefd ZGd d d ZGd d d ZGdddZdS)) default_timer) TracebackType) AnyCallableLiteralOptionalTupleType TYPE_CHECKINGTypeVarUniondecorate)CounterF.)boundc@s|eZdZdeeeeeedffddddZdddd Ze eee ee e e d d d d Z dddddZ dS)ExceptionCounterr.N)counter exceptionreturncCs||_||_dSN)_counter _exception)selfrrrP/opt/hc_python/lib/python3.8/site-packages/prometheus_client/context_managers.py__init__szExceptionCounter.__init__)rcCsdSrrrrrr __enter__szExceptionCounter.__enter__F)typvalue tracebackrcCst||jr|jdS)NF) isinstancerrincrr r!r"rrr__exit__s  zExceptionCounter.__exit__rfrcsfdd}t||S)Nc s&|||W5QRSQRXdSrrfuncargskwargsrrrwrappedsz*ExceptionCounter.__call__..wrappedrrr(r-rrr__call__s zExceptionCounter.__call__)__name__ __module__ __qualname__r r BaseExceptionrrrrrrr&r/rrrrrs*(rc@s4eZdZddZddZddZdddd d Zd S) InprogressTrackercCs ||_dSr)_gauge)rZgaugerrrr%szInprogressTracker.__init__cCs|jdSr)r5r$rrrrr(szInprogressTracker.__enter__cCs|jdSr)r5decr%rrrr&+szInprogressTracker.__exit__rr'csfdd}t||S)Nc s&|||W5QRSQRXdSrrr)rrrr-/sz+InprogressTracker.__call__..wrappedrr.rrrr/.s zInprogressTracker.__call__N)r0r1r2rrr&r/rrrrr4$sr4c@sDeZdZddZddZddZddZd d Zd d d d dZdS)TimercCs||_||_dSr)_metric_callback_name)rZmetricZ callback_namerrrr7szTimer.__init__cCs||j|jSr) __class__r8r9rrrr _new_timer;szTimer._new_timercCs t|_|Sr)r_startrrrrr>szTimer.__enter__cCs,tt|jd}t|j|j}||dS)Nr)maxrr<getattrr8r9)rr r!r"durationcallbackrrrr&BszTimer.__exit__cOs|jj|||_dSr)r8labels)rr+kwrrrrAHsz Timer.labelsrr'csfdd}t||S)Nc s*|||W5QRSQRXdSr)r;r)rrrr-Ls zTimer.__call__..wrappedrr.rrrr/Ks zTimer.__call__N) r0r1r2rr;rr&rAr/rrrrr76s r7N)Ztimeitrtypesrtypingrrrrrr r r r decoratorrrrrr4r7rrrrs  ,