
    =Ki;(                        S r SSKJr  SSKrSSKrSSKrSSKJrJrJ	r	  SSK
JrJr  SSKrSSKrSSKJr  SSKJr  SSKJrJr  SS	KJrJr  \R2                  " \5      r " S
 S5      rSS jrSS jrg)z*Synchronous HTTP client for LangGraph API.    )annotationsN)CallableIteratorMapping)Anycast)_orjson_default)_raise_for_status_typed)QueryParamTypes
StreamPart)
SSEDecoderiter_lines_rawc                  f   \ rS rSrSrSS jrSSSS.         SS jjrSSSS.           SS jjrSSSS.           SS jjrSSSS.           SS	 jjr	SSSSS
.           SS jjr
SSSSSS.               SS jjrSSSSS
.             SS jjrSrg)SyncHttpClient   a   Handle synchronous requests to the LangGraph API.

Provides error messaging and content handling enhancements above the
underlying httpx client, mirroring the interface of [HttpClient](#HttpClient)
but for sync usage.

Attributes:
    client (httpx.Client): Underlying HTTPX sync client.
c                    Xl         g Nclient)selfr   s     Z/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/langgraph_sdk/_sync/http.py__init__SyncHttpClient.__init__!   s        N)paramsheaderson_responsec                   U R                   R                  XUS9nU(       a  U" U5        [        U5        [        U5      $ )zSend a `GET` request.)r   r   )r   getr
   _decode_json)r   pathr   r   r   rs         r   r   SyncHttpClient.get$   s6     KKOODOAN"Ar   c                   Ub  [        U5      u  pgO0 SpvU(       a  UR                  U5        U R                  R                  XXsS9nU(       a  U" U5        [	        U5        [        U5      $ )zSend a `POST` request.r   r   contentr   )_encode_jsonupdater   postr
   r    	r   r!   jsonr   r   r   request_headersr&   r"   s	            r   r)   SyncHttpClient.post3   sm     '3D'9$OW')3W""7+KK7  
 N"Ar   c                   [        U5      u  pgU(       a  UR                  U5        U R                  R                  XXsS9nU(       a  U" U5        [	        U5        [        U5      $ )zSend a `PUT` request.r%   )r'   r(   r   putr
   r    r*   s	            r   r/   SyncHttpClient.putK   s\     $0#5 ""7+KKOO7  
 N"Ar   c                   [        U5      u  pgU(       a  UR                  U5        U R                  R                  XXsS9nU(       a  U" U5        [	        U5        [        U5      $ )zSend a `PATCH` request.r%   )r'   r(   r   patchr
   r    r*   s	            r   r2   SyncHttpClient.patcha   s^     $0#5 ""7+KK7  
 N"Ar   )r+   r   r   r   c               n    U R                   R                  SXX4S9nU(       a  U" U5        [        U5        g)zSend a `DELETE` request.DELETE)r+   r   r   N)r   requestr
   )r   r!   r+   r   r   r   r"   s          r   deleteSyncHttpClient.deletev   s8     KKdf   
 N"r      )r+   r   r   r   reconnect_limitc          	     <   [        U5      u  pU(       a  UR                  U5        U R                  R                  X!XUS9 n
U(       a  U" U
5         U
R	                  5         U
R                  R                  S5      nUS::  d  U(       d  [!        U
5      sSSS5        $  [!        U
5      sSSS5        $ ! [
        R                   ac  nU
R                  5       R                  5       n[        R                  S:  a  UR                  U5        Ue[        R                  SU 3US9  UeSnAff = f! [
        R"                   aI    [$        R&                  " SU 3S	S
9  U
R)                  5         U R+                  USUUS-
  S9s sSSS5        $ f = f! , (       d  f       g= f)z@Send a request that automatically reconnects to Location header.r%   )      zError from langgraph-api: )exc_infoNlocationr   z2Request failed, attempting reconnect to Location:    )
stacklevelGET   )r   r:   )r'   r(   r   streamraise_for_statushttpxHTTPStatusErrorreaddecodesysversion_infoadd_noteloggererrorr   r   r    	HTTPErrorwarningswarncloserequest_reconnect)r   r!   methodr+   r   r   r   r:   r,   r&   r"   ebodylocs                 r   rS    SyncHttpClient.request_reconnect   s    $0#5 ""7+[[/6   
A""$ ))--
+C!#3#A!
 
"#A%
 
 (( vvx(##w.JJt$  LL#=dV!DqLQ ?? HN  	--+$3a$7 .  3
 
&'
 
sP   FB3"2F
D-3D*AD%%D**F-AF
>F	F

F
Fc             #  Z  #    Ub  [        U5      u  pxO0 SpSUS'   SUS'   U(       a  UR                  U5        UR                  5        V	V
s0 s H  u  pU	R                  5       S;  d  M  X_M     nn	n
SnSnSnSn [	        Uc  UOU5      nUb  UUS
'   Uc  UOSnUc  UOSnUc  UOSnSnU R
                  R                  UU=(       d    UUUUS9 nUc  U(       a  U" U5        [        U5        UR                  R                  SS5      R                  S5      S   nSU;  a  [        R                  " SU< 35      eUR                  R                  S5      nU(       a  Un[        5       n [        U5       Hs  nUR                  [!        ["        U5      R%                  S5      5      nUc  M6  UR&                  b  UR&                  nUR(                  (       d  UR*                  c  Mo  Uv   Mu     UR                  S5      =n(       a;  UR&                  b  UR&                  nUR(                  (       d  UR*                  b  Uv   SSS5        U(       a#  US-  nX:  a  [        R                  " S5      eGM  gs  sn
n	f ! [        R,                   a	    Uc  e S	n NUf = f! , (       d  f       N_= f7f)z*Stream the results of a request using SSE.Nztext/event-streamAcceptzno-storezCache-Control>   content-typecontent-lengthr   r9   TzLast-Event-IDrB   Fr%   r[    ;zJExpected response header Content-Type to contain 'text/event-stream', got r?      
r   rC   z*Exceeded maximum SSE reconnection attempts)r'   r(   itemslowerdictr   rD   r
   r   r   	partitionrF   TransportErrorr   r   rI   r   bytesrstriplast_event_ideventdatarO   )r   r!   rT   r+   r   r   r   r,   r&   keyvaluereconnect_headersrg   reconnect_pathreconnect_attemptsmax_reconnect_attemptscurrent_headerscurrent_methodcurrent_contentcurrent_paramsretryrescontent_typereconnect_locationdecoderlinesses                              r   rD   SyncHttpClient.stream   s     '3D'9$OW')4W$7!+5(""7+ .335
5
yy{"DD CJ5 	 
 %)%)!""#1#9?PO (3@0'5'=V5N)7)?gTO'5'=V4NE##&$''% $  !)k$',"{{~rBLLSQRST&l:..+.0 
 &)[[__Z%@"%%7N$,& .s 3%nnT%->-E-Ee-LM?&44@070E0E"yyCHH,@&)	 !4 &nnS11s1"00<,3,A,AM99(< #&I[\ "a'"%>..D  Y
n  ! &- E!A sc   A
J+I4*I40A!J+BJ,=I:-5I:&I:.AJ9J+:JJJJ
J($J+r   )r   zhttpx.ClientreturnNone)
r!   strr   QueryParamTypes | Noner   Mapping[str, str] | Noner   'Callable[[httpx.Response], None] | Noner|   r   )r!   r~   r+   zdict[str, Any] | list | Noner   r   r   r   r   r   r|   r   )r!   r~   r+   rb   r   r   r   r   r   r   r|   r   )r!   r~   r+   z
Any | Noner   r   r   r   r   r   r|   r}   )r!   r~   rT   r~   r+   dict[str, Any] | Noner   r   r   r   r   r   r:   intr|   r   )r!   r~   rT   r~   r+   r   r   r   r   r   r   r   r|   zIterator[StreamPart])__name__
__module____qualname____firstlineno____doc__r   r   r)   r/   r2   r7   rS   rD   __static_attributes__ r   r   r   r      sA    *.,0?C '	
 * = 
( *.,0?C +	
 ' * = 
: *.,0?C 	
 ' * = 
6 *.,0?C 	
 ' * = 
2  )-,0?C## 	#
 '# *# =# 
#, '+)-,0?C .. .
 $. '. *. =. . 
.j '+)-,0?C`` `
 $` '` *` =` 
` `r   r   c                    [         R                  " U [        [         R                  [         R                  -  5      n[        [        U5      5      nSnX#S.nXA4$ )Nzapplication/json)zContent-LengthzContent-Type)orjsondumpsr	   OPT_SERIALIZE_NUMPYOPT_NON_STR_KEYSr~   len)r+   rV   content_lengthrv   r   s        r   r'   r'     sN    <<""V%<%<<D
 T^N%L!/NG=r   c                `    U R                  5       nU(       a  [        R                  " U5      $ S $ r   )rH   r   loads)r"   rV   s     r   r    r    &  s#    668D!%6<</4/r   )r+   r   r|   ztuple[dict[str, str], bytes])r"   zhttpx.Responser|   r   )r   
__future__r   loggingrJ   rP   collections.abcr   r   r   typingr   r   rF   r   langgraph_sdk._shared.utilitiesr	   langgraph_sdk.errorsr
   langgraph_sdk.schemar   r   langgraph_sdk.sser   r   	getLoggerr   rM   r   r'   r    r   r   r   <module>r      sV    0 "  
  7 7    ; 8 < 8			8	$A AH	0r   