
    (ph/                         S SK r S SKrS SKrS SKJs  Jr  \R                  " \5      r	 " S S5      r
 " S S\R                  5      rg)    Nc                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
RefreshThreadManager   z<
Organizes exactly one background job that refresh a token.
c                 F    SU l         [        R                  " 5       U l        g)zInitializes the manager.N)_worker	threadingLock_lockselfs    N/var/www/html/venv/lib/python3.13/site-packages/google/auth/_refresh_worker.py__init__RefreshThreadManager.__init__   s     ^^%
    c                    Ub  Uc  [         R                  " S5      eU R                     U R                  b!  U R                  R                  b
   SSS5        gU R                  b  U R                  R                  5       (       d=  [        U[        R                  " U5      S9U l        U R                  R                  5         SSS5        g! , (       d  f       g= f)a-  Starts a refresh thread for the given credentials.
The credentials are refreshed using the request parameter.
request and cred MUST not be None

Returns True if a background refresh was kicked off. False otherwise.

Args:
    cred: A credentials object.
    request: A request object.
Returns:
  bool
NzQUnable to start refresh. cred and request must be valid and instantiated objects.F)credrequestT)
eInvalidValuer
   r   _error_infois_aliveRefreshThreadcopydeepcopystart)r   r   r   s      r   start_refresh"RefreshThreadManager.start_refresh#   s     <7?..c  ZZ||'DLL,D,D,P Z ||#4<<+@+@+B+B,$g@VW""$   Z s   &C
A)C


Cc                     U R                      U R                  (       a  SU R                  l        SSS5        g! , (       d  f       g= f)zI
Removes any errors that were stored from previous background refreshes.
N)r
   r   r   r   s    r   clear_error RefreshThreadManager.clear_error>   s(     ZZ||+/( ZZs	   #9
Ac                 D    U R                   R                  5       nSUS'   U$ )z2Pickle helper that serializes the _lock attribute.Nr
   )__dict__r   r   states     r   __getstate__!RefreshThreadManager.__getstate__F   s"    ""$gr   c                 j    [         R                  " 5       US'   U R                  R                  U5        g)z4Pickle helper that deserializes the _lock attribute.r
   N)r   r	   r"   updater#   s     r   __setstate__!RefreshThreadManager.__setstate__L   s$    ")gU#r   )r
   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r%   r)   __static_attributes__ r   r   r   r      s     &60$r   r   c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )r   R   z$
Thread that refreshes credentials.
c                 L   > [         TU ]  " S0 UD6  Xl        X l        SU l        g)zInitializes the thread.

Args:
    cred: A Credential object to refresh.
    request: A Request object used to perform a credential refresh.
    **kwargs: Additional keyword arguments.
Nr1   )superr   _cred_requestr   )r   r   r   kwargs	__class__s       r   r   RefreshThread.__init__W   s'     	"6"
r   c                      U R                   R                  U R                  5        g! [         a(  n[        R                  SU 35        Xl         SnAgSnAff = f)z!
Perform the credential refresh.
z"Background refresh failed due to: N)r6   refreshr7   	Exception_LOGGERerrorr   )r   errs     r   runRefreshThread.rune   sJ    	#JJt}}- 	#MM>seDE"	#s   %( 
AAA)r6   r   r7   )	r+   r,   r-   r.   r/   r   rA   r0   __classcell__)r9   s   @r   r   r   R   s     # #r   r   )r   loggingr   google.auth.exceptionsauth
exceptionsr   	getLoggerr+   r>   r   Threadr   r1   r   r   <module>rJ      sC       " "


H
%7$ 7$t#I$$ #r   