
    9i                       d dl mZ d dlZd dlZd dlmZmZmZ d dlZd dl	Z	 ej                  e      Z G d de      Z G d dej                  e      Z G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zd&d Zd'd!Zd'd"Zd(d#Z d)d$Z!d)d%Z"y)*    )annotationsN)AnyLiteralcastc                      e Zd Zy)LangGraphErrorN__name__
__module____qualname__     ^/var/www/html/backtest/airagagent/rag_env/lib/python3.12/site-packages/langgraph_sdk/errors.pyr   r          r   r   c                  b    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   	 	 	 	 	 	 	 	 ddZy)APIErrorstrmessagehttpx.Requestrequestobject | Nonebody
str | Nonecodeparamtypec               d   t        |t        j                        r|j                  }|}n|}d }t        j                  j                  | |||       t        j                  |        || _        || _        || _        t        |t              rt        d|      }|j                  d      }t        |t              r|nd | _        |j                  d      }t        |t              r|nd | _        |j                  d      }	t        |	t              r|	| _        y d | _        y d | _        d | _        d | _        y )N)r   responsedict[str, Any]r   r   r   )
isinstancehttpxResponser   HTTPStatusError__init__r   r   r   dictr   getr   r   r   r   )
selfr   response_or_requestr   reqr   bcode_val	param_valts
             r   r$   zAPIError.__init__   s     )5>>:%--C*H%CH&&tWcH&U%	dD!%t,AuuV}H$.x$=4DIgI&0C&@dDJfA'3/DITDIDIDJDIr   N)r   r   r(   zhttpx.Response | httpx.Requestr   r   returnNone)r
   r   r   __annotations__r$   r   r   r   r   r      sP    L


!! <!
 ! 
!r   r   c                  J     e Zd ZU ded<   ded<   dd	 	 	 	 	 	 	 d fdZ xZS )	APIResponseValidationErrorhttpx.Responser   intstatus_codeNr   c               b    t         |   |xs d||       || _        |j                  | _        y )Nz1Data returned by API invalid for expected schema.r   )superr$   r   r5   )r'   r   r   r   	__class__s       r   r$   z#APIResponseValidationError.__init__B   s=     	JJ 	 	

 !#//r   )r   r3   r   r   r   r   r.   r/   r
   r   r   r0   r$   __classcell__r:   s   @r   r2   r2   >   sD     #0 0 0
 0 
0 0r   r2   c                  P     e Zd ZU ded<   ded<   ded<   	 	 	 	 	 	 	 	 d fdZ xZS )	APIStatusErrorr3   r   r4   r5   r   
request_idc                   t         |   |||       || _        |j                  | _        |j                  j                  d      | _        y )Nr8   zx-request-id)r9   r$   r   r5   headersr&   r@   )r'   r   r   r   r:   s       r   r$   zAPIStatusError.__init__W   sF     	(6 #//"**..~>r   )r   r   r   r3   r   r   r.   r/   r;   r=   s   @r   r?   r?   R   s?    ??)7??L?	? ?r   r?   c                  0     e Zd Zdd	 	 	 	 	 d fdZ xZS )APIConnectionErrorzConnection error.r6   c               *    t         |   ||d        y )N)r(   r   r9   r$   )r'   r   r   r:   s      r   r$   zAPIConnectionError.__init__a   s     	gDIr   )r   r   r   r   r.   r/   r
   r   r   r$   r<   r=   s   @r   rD   rD   `   s-     3JJ>KJ	J Jr   rD   c                        e Zd Zd fdZ xZS )APITimeoutErrorc                (    t         |   d|       y )NzRequest timed out.)r   r   rF   )r'   r   r:   s     r   r$   zAPITimeoutError.__init__h   s    !5wGr   )r   r   r.   r/   rG   r=   s   @r   rI   rI   g   s    H Hr   rI   c                      e Zd ZU dZded<   y)BadRequestError  zLiteral[400]r5   Nr
   r   r   r5   r0   r   r   r   rL   rL   l        #K#r   rL   c                      e Zd ZU dZded<   y)AuthenticationError  zLiteral[401]r5   NrN   r   r   r   rQ   rQ   p   rO   r   rQ   c                      e Zd ZU dZded<   y)PermissionDeniedError  zLiteral[403]r5   NrN   r   r   r   rT   rT   t   rO   r   rT   c                      e Zd ZU dZded<   y)NotFoundError  zLiteral[404]r5   NrN   r   r   r   rW   rW   x   rO   r   rW   c                      e Zd ZU dZded<   y)ConflictError  zLiteral[409]r5   NrN   r   r   r   rZ   rZ   |   rO   r   rZ   c                      e Zd ZU dZded<   y)UnprocessableEntityError  zLiteral[422]r5   NrN   r   r   r   r]   r]      rO   r   r]   c                      e Zd ZU dZded<   y)RateLimitError  zLiteral[429]r5   NrN   r   r   r   r`   r`      rO   r   r`   c                      e Zd Zy)InternalServerErrorNr	   r   r   r   rc   rc      r   r   rc   c                T   t        | t              rt        d|       }dD ]*  }|j                  |      }t        |t              s%|s(|c S  |j                  d      }t        |t              r;t        d|      }dD ]*  }|j                  |      }t        |t              s%|s(|c S  |S )Nr   )r   detailerrorrf   )r   re   )r    r%   r   r&   r   )r   fallbackr*   keyvalerres          r   _extract_error_messagerl      s    $!4(1 	C%%*C#s#
	
 eeGnc4 %s+A, eeCjc3'CJ Or   c                   K   	 | j                          d {   }|sy 	 t        j                  |      S 7 # t        $ r Y y w xY w# t        $ r$ 	 |j	                         cY S # t        $ r Y Y y w xY ww xY wwN)aread	Exceptionorjsonloadsdecoderdatas     r   _adecode_error_bodyrw      s}     WWY ||D!!    	;;=  		sw   A67 57 A6A A67 	A A6AA6	A3A"A3 A6"	A/+A3,A6.A//A33A6c                    	 | j                         }|sy 	 t        j                  |      S # t        $ r Y y w xY w# t        $ r$ 	 |j	                         cY S # t        $ r Y Y y w xY ww xY wrn   )readrp   rq   rr   rs   rt   s     r   _decode_error_bodyrz      su    vvx ||D!!    	;;=  		s9   + : 	77	A'AA'	A#A'"A##A'c                   | j                   }| j                  xs d}t        || d|       }|dk(  rt        || |      S |dk(  rt	        || |      S |dk(  rt        || |      S |dk(  rt        || |      S |dk(  rt        || |      S |d	k(  rt        || |      S |d
k(  rt        || |      S |dk\  rt        || |      S t        || |      S )Nz
HTTP Error rM   )r   r   rR   rU   rX   r[   r^   ra   i  )r5   reason_phraserl   rL   rQ   rT   rW   rZ   r]   r`   rc   r?   )r   r   statusreasonr   s        r   _map_status_errorr      s    !!F##3|F$TfXQvh+?@G}wEE}"7XDII}$WxdKK}WxdCC}WxdCC}'(NN}gtDD}"7XDII'H4@@r   c                   K   | j                   dk  ry t        |        d {   }t        | |      }t        j                  dk\  s#t
        j                  dt        |dd              |7 HwNrM   )      zError from langgraph-api: r    )r5   rw   r   sysversion_infologgerrf   getattrru   r   rj   s      r   _araise_for_status_typedr      sd     }}s$Q''D
At
$C'1'#y"2M1NOP
I (s   A,A*A	A,c                    | j                   dk  ry t        |       }t        | |      }t        j                  dk\  s#t
        j                  dt        |dd              |r   )r5   rz   r   r   r   r   rf   r   r   s      r   _raise_for_status_typedr      sX    }}sa D
At
$C'1'#y"2M1NOP
Ir   )r   r   rg   r   r.   r   )ru   r3   r.   r   )r   r3   r   r   r.   r?   )ru   r3   r.   r/   )#
__future__r   loggingr   typingr   r   r   r!   rq   	getLoggerr
   r   rp   r   r#   r   r2   r?   rD   rI   rL   rQ   rT   rW   rZ   r]   r`   rc   rl   rw   rz   r   r   r   r   r   r   <module>r      s   "  
 % %  			8	$	Y 	*u$$n *Z0 0(?X ?J JH( H
$n $$. $$N $$N $$N $$~ $$^ $	. 	$  A.r   