
    +h~                     "   d dl mZmZmZmZ d dlZd dlm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y)    )DictOptionalUnioncastN)ErrorObjectc                   8    e Zd ZU ee   ed<   ee   ed<   ee   ed<   ee   ed<   eeeef      ed<   ee   ed<   ee   ed<   ee	   ed<   	 	 	 	 	 	 dd	ee   dee
eef      dee   dee   deeeef      dee   f fd
Zd Zed        Zd Zdee	   fdZ xZS )StripeError_message	http_bodyhttp_status	json_bodyheaderscode
request_iderrormessagec                 v   t         t        |   |       d }|r,t        |d      r 	 t	        t
        |      j                  d      }|| _        || _	        || _
        || _        |xs i | _        || _        | j                  j                  dd       | _        | j!                         | _        y # t        $ r d}Y rw xY w)Ndecodezutf-8zE<Could not decode body as utf-8. Please report to support@stripe.com>z
request-id)superr	   __init__hasattrr   bytesr   BaseExceptionr
   r   r   r   r   r   getr   construct_error_objectr   )	selfr   r   r   r   r   r   body	__class__s	           ?/var/www/html/venv/lib/python3.12/site-packages/stripe/error.pyr   zStripeError.__init__   s     	k4)'2"H5E9-44W=  &"}"	,,**<>002
 ! ; s   B* *B87B8c                 v    | j                   xs d}| j                  dj                  | j                  |      S |S )Nz<empty message>zRequest {0}: {1})r
   r   format)r   msgs     r   __str__zStripeError.__str__.   s7    mm00??&%,,T__cBBJ    c                     | j                   S N)r
   r   s    r   user_messagezStripeError.user_message9   s    }}r$   c                     | j                   j                  d| j                  d| j                  d| j                  dS )N	(message=, http_status=, request_id=))r   __name__r
   r   r   r'   s    r   __repr__zStripeError.__repr__=   s0    NN##MMOO	
 	
r$   returnc                    | j                   Et        | j                   t              r+d| j                   vst        | j                   d   t              sy t        j                  | j                   d   t
        j                        S )Nr   )r   
isinstancedictr   construct_fromstripeapi_keyr'   s    r   r   z"StripeError.construct_error_objectE   sa    NN"dnnd3dnn,dnnW5t<))NN7#V^^
 	
r$   )NNNNNN)r.   
__module____qualname__r   str__annotations__intobjectr   r   r   r   r   r#   propertyr(   r/   r   __classcell__r   s   @r   r	   r	      s   sm}#d38n%%
3-K   "&15%)&*,0"3#3 E%*-.3 c]	3
 F#3 $sCx.)3 sm3<  

(= 
r$   r	   c                       e Zd Zy)APIErrorNr.   r7   r8    r$   r   rA   rA   S       r$   rA   c                   8     e Zd ZU eed<   	 	 	 	 	 	 d fd	Z xZS )APIConnectionErrorshould_retryc                 D    t         t        |   ||||||       || _        y r&   )r   rF   r   rG   )	r   r   r   r   r   r   r   rG   r   s	           r   r   zAPIConnectionError.__init__Z   s,     	 $0YY	
 )r$   )NNNNNF)r.   r7   r8   boolr:   r   r>   r?   s   @r   rF   rF   W   s'    
 ) )r$   rF   c                       e Zd Zd Zy)StripeErrorWithParamCodec                     | j                   j                  d| j                  d| j                  d| j                  d| j
                  d| j                  dS )Nr*   z, param=z, code=r+   r,   r-   )r   r.   r
   paramr   r   r   r'   s    r   r/   z!StripeErrorWithParamCode.__repr__k   s@    
 ''

		  		
r$   N)r.   r7   r8   r/   rC   r$   r   rK   rK   j   s    
r$   rK   c                   (     e Zd Z	 	 	 	 d fd	Z xZS )	CardErrorc                 D    t         t        |   ||||||       || _        y r&   )r   rO   r   rM   	r   r   rM   r   r   r   r   r   r   s	           r   r   zCardError.__init__{   s*     	i'YY	
 
r$   )NNNNr.   r7   r8   r   r>   r?   s   @r   rO   rO   z   s      r$   rO   c                       e Zd Zy)IdempotencyErrorNrB   rC   r$   r   rT   rT      rD   r$   rT   c                   *     e Zd Z	 	 	 	 	 d fd	Z xZS )InvalidRequestErrorc                 D    t         t        |   ||||||       || _        y r&   )r   rV   r   rM   rQ   s	           r   r   zInvalidRequestError.__init__   s+     	!41YY	
 
r$   )NNNNNrR   r?   s   @r   rV   rV      s    
  r$   rV   c                       e Zd Zy)AuthenticationErrorNrB   rC   r$   r   rY   rY      rD   r$   rY   c                       e Zd Zy)PermissionErrorNrB   rC   r$   r   r[   r[      rD   r$   r[   c                       e Zd Zy)RateLimitErrorNrB   rC   r$   r   r]   r]      rD   r$   r]   c                         e Zd Zd fd	Z xZS )SignatureVerificationErrorc                 <    t         t        |   ||       || _        y r&   )r   r_   r   
sig_header)r   r   ra   r   r   s       r   r   z#SignatureVerificationError.__init__   s    ($8)L$r$   r&   rR   r?   s   @r   r_   r_      s    % %r$   r_   )typingr   r   r   r   r5   !stripe.api_resources.error_objectr   	Exceptionr	   rA   rF   rK   rO   rT   rV   rY   r[   r]   r_   rC   r$   r   <module>re      s    . .  9J
) J
Z	{ 	) )&
{ 
 ( "	{ 	2 "	+ 		k 		[ 	% %r$   