
    lKj
                     N    d dl Z d dlZd dlmZ d dlmZ ddlmZ  G d de      Zy)    N)Hashable)Any   )FrameworkIntegrationc                       e Zd ZdefdZdeeef   dz  dedeeef   fdZdeeef   dz  dedefd	Z	deeef   dz  defd
Z
ddZed        Zy)StarletteIntegrationkeyc                    K   | j                   j                  |       d {   }|sy 	 t        j                  |      S 7 # t        t
        f$ r Y y w xY wwN)cachegetjsonloads	TypeError
ValueError)selfr	   values      /Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/authlib/integrations/starlette_client/integration.py_get_cache_dataz$StarletteIntegration._get_cache_data
   sR     jjnnS))	::e$$	 *
 :& 		s0   A?AA AAAAAsessionNstatereturnc                    K   d| j                    d| }| j                  r.||j                  |      y | j                  |       d {   }n||j                  |      }nd }|r|j                  d      S y 7 /w)N_state__data)namer   r   r   )r   r   r   r	   r   s        r   get_state_dataz#StarletteIntegration.get_state_data   s      		{!E7+:: '++c"2":..s33E KK$EE99V$$ 4s   AA;	A9
0A;r   c                 h  K   d| j                    d}| | }t        j                         }| j                  r| j                  j                  |t	        j
                  d|i      | j                         d {    |Vt        |j                               D ]%  }|j                  |      s|j                  |       ' d|| j                  z   i||<   y y |Wt        |j                               D ]%  }|j                  |      s|j                  |       ' ||| j                  z   d||<   y y 7 w)Nr   r   r   exp)r   r    )r   timer   setr   dumps
expires_inlistkeys
startswithpop)r   r   r   r   
key_prefixr	   nowold_keys           r   set_state_dataz#StarletteIntegration.set_state_data&   s     tyyk+
UG$iik::**..djj&$&@$//RRR"#GLLN3G))*5G,  4 !&sT__'<= #  /%%j1KK( 0 %)t1FGGCL ! Ss   A6D28D093D2-AD2+D2c                    K   d| j                    d| }| j                  r#| j                  j                  |       d {    |$|j                  |d        | j	                  |       y y 7 +w)Nr   r   )r   r   deleter(   _clear_session_state)r   r   r   r	   s       r   clear_state_dataz%StarletteIntegration.clear_state_data;   sg     		{!E7+::**##C(((KKT"%%g.  )s   =A-A+ ,A-c                      y r    )r   tokenrefresh_tokenaccess_tokens       r   update_tokenz!StarletteIntegration.update_tokenC   s        c                     | j                   si S i }|D ]<  }| d| j                         }| j                   j                  |d       }|8|||<   > |S )Nr   )default)configupperr   )oauthr   paramsrvkconf_keyvs          r   load_configz StarletteIntegration.load_configF   sc    ||IAq}**,H  4 8A}1	 
 	r7   )NN)__name__
__module____qualname__r   r   dictstrr   r   r,   r0   r6   staticmethodrB   r2   r7   r   r   r   	   s     CH~,58	c3h&HCH~,H58H@CH*/d38nt.C /C / 
 
r7   r   )	r   r!   collections.abcr   typingr   base_clientr   r   r2   r7   r   <module>rL      s#      $  .H/ Hr7   