
    #	hx                     x    S SK r S SKr\R                  " \5      rSrSrSrS rSr	Sr
SrSrS	rS
 r " S S\5      rg)    Nzclient-request-idzx-client-current-telemetryzx-client-last-telemetry               c                  >    [        [        R                  " 5       5      $ )N)struuiduuid4     @/var/www/html/env/lib/python3.13/site-packages/msal/telemetry.py_get_new_correlation_idr      s    tzz|r   c                   N    \ rS rSrSrSrSrSrSrSr	SS	 jr
S
 rS rS rS rSrg)_TelemetryContext   zLIt is used for handling the telemetry context for current OAuth2 "exchange".	succeededfailedfailure_sized   i^  Nc                     Xl         X l        X0l        U=(       d
    [        5       U l        U=(       d    [
        U l        [        R                  SU R                  5        g )Nz$Generate or reuse correlation_id: %s)	_buffer_lock_api_idr   _correlation_idNON_SILENT_CALL_refresh_reasonloggerdebug)selfbufferlockapi_idcorrelation_idrefresh_reasons         r   __init___TelemetryContext.__init__   sD    
-J1H1J-@;T=Q=QRr   c                 l   U R                      SR                  U R                  U R                  S9n[	        U5      U R
                  :  a.  [        R                  SR                  U R
                  5      5        U R                  R                  U R                  / 5      n[        U R                  [        U[        SR                  U R                  R                  U R                  S5      SR!                  S U 5       5      SR!                  S U 5       5      S	90sS S S 5        $ ! , (       d  f       g = f)
Nz4|{api_id},{cache_refresh}|)r#   cache_refreshz9Telemetry header greater than {} will be truncated by AADz)4|{succeeded}|{failed_requests}|{errors}|r   ,c              3   F   #    U  H  nS R                   " S0 UD6v   M     g7f)z{a},{c}Nr   )format.0fs     r   	<genexpr>5_TelemetryContext.generate_headers.<locals>.<genexpr>5   s     ,UHqY-=-=-B-BHs   !c              3   *   #    U  H	  oS    v   M     g7f)eNr   r-   s     r   r0   r1   6   s     #=HqcFHs   )r   failed_requestserrors)r   r,   r   r   len_CURRENT_HEADER_SIZE_LIMITr   warningr   get_FAILEDCLIENT_REQUEST_IDr   CLIENT_CURRENT_TELEMETRYCLIENT_LAST_TELEMETRY
_SUCCEEDEDjoin)r    currentfailuress      r   generate_headers"_TelemetryContext.generate_headers'   s    ZZ3::||43G3G ; IG7|d===OVV3356 ||''b9H!4#7#7('%'R'Y'Y"ll..tB$'HH,UH,U$U88#=H#== (Z ( ZZs   DD%%
D3c                     U R                      U R                  R                  U R                  S5      S-   U R                  U R                  '   S S S 5        g ! , (       d  f       g = f)Nr   r   )r   r   r9   r>   )r    s    r   hit_an_access_token%_TelemetryContext.hit_an_access_token:   s@    ZZ,0LL,<,<T__a,PST,TDLL) ZZs   AA
A%c                     U(       aK  U R                      SU;   a  U R                  US   5        OU R                  R                  5         S S S 5        g g ! , (       d  f       g = f)Nerror)r   _record_failurer   clear)r    auth_results     r   update_telemetry"_TelemetryContext.update_telemetry>   sI    k)((W)=>LL&&(	  s   6A
A"c                    [        SR                  U R                  U R                  US95      nU R                  R                  U R                  S5      U-   U R                  :  a  U R                  R                  U R                  S5      U-   U R                  U R                  '   U R                  R                  U R                  / 5      R                  U R                  U R                  US.5        g g )Nz",{api_id},{correlation_id},{error})r#   r$   rH   r   )acr3   )r6   r,   r   r   r   r9   _FAILURE_SIZE_LAST_HEADER_SIZE_LIMIT
setdefaultr:   append)r    rH   
simulations      r   rI   !_TelemetryContext._record_failureF   s    =DD<<0D0DE E S T
<<D..2Z?$B^B^^/3||/?/?""A0')304DLL++,LL##DLL"5<<\\(<(<5>J K _r   )r   r   r   r   r   )NN)__name__
__module____qualname____firstlineno____doc__r>   r:   rQ   r7   rR   r&   rB   rE   rL   rI   __static_attributes__r   r   r   r   r      s<    VJG"M!$!S&U)Kr   r   )r
   logging	getLoggerrW   r   r;   r<   r=   r   FORCE_REFRESH	AT_ABSENT
AT_EXPIREDAT_AGINGRESERVEDr   objectr   r   r   r   <module>re      s`      
		8	$' 7 1 	
7K 7Kr   