
    ~h                     Z    d dl Z d dlZd dlm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)Optional   )FrameworkIntegrationc                       e Zd ZdefdZdeeeef      dedeeef   fdZ	deeeef      dedefdZ
deeeef      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      m/opt/mcp/mcp-sentiment/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sessionstatereturnc                    K   d| j                    d| }| j                  r| 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   sk      		{!E7+::..s33E KK$EE99V$$ 4s   3A'A%0A'r   c                   K   d| j                    d}| | }| j                  rE| j                  j                  |t        j                  d|i      | j
                         d {    y |kt        |j                               D ]%  }|j                  |      s|j                  |       ' t        j                         }||| j
                  z   d||<   y y 7 sw)Nr   r   r   )r   exp)r   r   setr   dumps
expires_inlistkeys
startswithpoptime)r   r   r   r   
key_prefixr
   old_keynows           r   set_state_dataz#StarletteIntegration.set_state_data#   s      tyyk+
UG$::**..djj&$&@$//RRR / )%%j1KK() ))+C$(t1FGGCL ! Ss   A"C$C%4C?Cc                    K   d| j                    d| }| j                  r$| j                  j                  |       d {    y |$|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_data2   sg     		{!E7+::**##C((( KKT"%%g. ! )s   =A.A, -A.Nc                      y r    )r   tokenrefresh_tokenaccess_tokens       r   update_tokenz!StarletteIntegration.update_token:   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_config=   sh    ||I 	Aq}**,H  4 8A}1		
 	r8   )NN)__name__
__module____qualname__r   r   r   dictstrr   r   r-   r1   r7   staticmethodrC   r3   r8   r   r	   r	   
   s     S#X/8;	c3hHS#X/H8;HCFH/htCH~.F /s / 
 
r8   r	   )
r   r)   collections.abcr   typingr   r   base_clientr   r	   r3   r8   r   <module>rM      s$      $   .>/ >r8   