
    =Ki8                    >   % S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	J
r
  SSKrSSKrSSKJr  Sr\
" S\" 5       5      r\4SS jjr      SS	 jrSS
 jr\R*                  " S5      r    SS jrSS jr/ rS\S'   SS jr\R8                  " SS9SS j5       rg)z4Shared utility functions for async and sync clients.    )annotationsN)Mapping)Anycast)RunCreateMetadata)	x-api-keyc                    [        U [        5      (       a  U $ U [        L aY  S HS  n[        R                  " U S35      =n(       d  M%  UR                  5       R                  S5      R                  S5      s  $    g)a  Get the API key from the environment.
Precedence:
    1. explicit string argument
    2. LANGGRAPH_API_KEY (if api_key not provided)
    3. LANGSMITH_API_KEY (if api_key not provided)
    4. LANGCHAIN_API_KEY (if api_key not provided)

Args:
    api_key: The API key to use. Can be:
        - A string: use this exact API key
        - None: explicitly skip loading from environment
        - NOT_PROVIDED (default): auto-load from environment variables
)	LANGGRAPH	LANGSMITH	LANGCHAIN_API_KEY"'N)
isinstancestrNOT_PROVIDEDosgetenvstrip)api_keyprefixenvs      a/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/langgraph_sdk/_shared/utilities.py_get_api_keyr      sj     '3,=Fii6(( 344s4yy{((-33C88 >     c                    U=(       d    0 n[          H  nX!;   d  M
  [        SU S35      e   SS[        R                   30UEn[	        U 5      nU(       a  XCS'   U$ )z1Combine api_key and custom user-provided headers.zCannot set reserved header 'r   z
User-Agentzlanggraph-sdk-py/r   )RESERVED_HEADERS
ValueErrorlanggraph_sdk__version__r   )r   custom_headersheaderheadersresolved_api_keys        r   _get_headersr%   .   su    
 $)rN"#;F81EFF #
 	)-*C*C)DE
G $G,/Nr   c                   [        U [        5      n[        U S5      (       aD  [        U R                  5      (       a*  U(       a  [        SU < SU < 35      eU R	                  5       $ [        U S5      (       aD  [        U R                  5      (       a*  U(       a  [        SU < SU < 35      eU R                  5       $ [        U [        [        45      (       a  [        U 5      $ [        S[        U 5       S35      e)N
model_dumpz#Cannot JSON-serialize type object: zI. Did you mean to pass an instance of the object instead?
Received type: dictzObject of type z is not JSON serializable)
r   typehasattrcallabler'   	TypeErrorr(   set	frozensetlist)objis_classs     r   _orjson_defaultr2   C   s    #t$HsL!!hs~~&>&>5cW =$$'7,  ~~	f		(388"4"45cW =$$'7,  xxz	C#y)	*	*Cy/$s)4MNOOr   z5(\/threads\/(?P<thread_id>.+))?\/runs\/(?P<run_id>.+)c                    U R                   R                  S5      =n(       aM  [        R                  U5      =n(       a1  [	        UR                  S5      UR                  S5      =(       d    SS9$ g)z/Extract run metadata from the response headers.zContent-Locationrun_id	thread_idN)r4   r5   )r#   get_RUN_METADATA_PATTERNsearchr   group)responsecontent_locationmatchs      r   _get_run_metadata_from_responser=   _   sh     %,,001CDDD&--.>??? ;;x(kk+.6$
 	

 r   c                b    U R                  5        VVs0 s H  u  pUc  M
  X_M     snn$ s  snnf N)items)dkvs      r   _provided_valsrD   n   s(    WWY8YTQ!DADY888s   	++zlist[httpx.ASGITransport]_registered_transportsc                *    [          H	  nXl        M     g r?   )rE   app)rG   	transports     r   configure_loopback_transportsrI   v   s    +	 ,r      )maxsizec                 h     SSK Jn   U R                  $ ! [         a    [        R                  s $ f = f)Nr   asgi_transport)langgraph_apirN   ASGITransportImportErrorhttpxrM   s    r   get_asgi_transportrS   {   s1    #0+++ #"""#s    11)r   
str | NonereturnrT   )r   rT   r!   zMapping[str, str] | NonerU   zdict[str, str])r0   r   rU   r   )r:   zhttpx.ResponserU   zRunCreateMetadata | None)rA   zMapping[str, Any]rU   zdict[str, Any])rG   r   rU   None)rU   ztype[httpx.ASGITransport])__doc__
__future__r   	functoolsr   recollections.abcr   typingr   r   rR   r   langgraph_sdk.schemar   r   objectr   r   r%   r2   compiler7   r=   rD   rE   __annotations__rI   	lru_cacherS    r   r   <module>rc      s    : "  	 	 #    2! D&(# (4 2, *P. 

< 
9 57 1 6
 Q#  #r   