o
    i                     @   s   d dl mZmZmZmZ d dlmZ G dd deZG dd deZ	G dd deZ
G d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    )DictOptionalUnioncastErrorObjectc                       s  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d 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dZdd Zedd Zdd Zdee fddZ  ZS )StripeError_message	http_bodyhttp_status	json_bodyheaderscode
request_idr   errorNmessagec                    s   t t| | d }|r.t|dr'z
tt|d}W n ty&   d}Y nw t|t	r.|}|| _
|| _|| _|| _|p=i | _|| _| jdd | _|  | _d S )Ndecodezutf-8zE<Could not decode body as utf-8. Please report to support@stripe.com>z
request-id)superr   __init__hasattrr   bytesr   BaseException
isinstancestrr	   r
   r   r   r   r   getr   _construct_error_objectr   )selfr   r
   r   r   r   r   body	__class__ m/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_error.pyr      s(   	


zStripeError.__init__c                 C   s&   | j pd}| jd urd| j|S |S )Nz<empty message>zRequest {0}: {1})r	   r   format)r   msgr    r    r!   __str__4   s   

zStripeError.__str__c                 C   s   | j S N)r	   r   r    r    r!   user_message?   s   zStripeError.user_messagec                 C   s   d| j j| j| j| jf S )Nz-%s(message=%r, http_status=%r, request_id=%r))r   __name__r	   r   r   r&   r    r    r!   __repr__C   s   zStripeError.__repr__returnc                 C   sf   | j d u st| j trd| j vst| j d tsd S ddlm} ddlm} |j| j d | ddS )Nr   r   r   )_APIRequestorV1)values	requestorapi_mode)	r   r   dictstripe._error_objectr   stripe._api_requestorr+   _construct_from_global_instance)r   r   r+   r    r    r!   r   K   s   


z#StripeError._construct_error_object)NNNNNN)r(   
__module____qualname__r   r   __annotations__intobjectr   r   r   r   r$   propertyr'   r)   r   r   __classcell__r    r    r   r!   r      sB   
 $
r   c                   @      e Zd ZdS )APIErrorNr(   r5   r6   r    r    r    r!   r=   _       r=   c                       s4   e Zd ZU eed< 						d fdd	Z  ZS )APIConnectionErrorshould_retryNFc                    s$   t t| |||||| || _d S r%   )r   r@   r   rA   )r   r   r
   r   r   r   r   rA   r   r    r!   r   f      


zAPIConnectionError.__init__)NNNNNF)r(   r5   r6   boolr7   r   r;   r    r    r   r!   r@   c   s   
 r@   c                   @   s   e Zd Zdd ZdS )StripeErrorWithParamCodec                 C   s"   d| j j| j| j| j| j| jf S )Nz@%s(message=%r, param=%r, code=%r, http_status=%r, request_id=%r))r   r(   r	   paramr   r   r   r&   r    r    r!   r)   w   s   z!StripeErrorWithParamCode.__repr__N)r(   r5   r6   r)   r    r    r    r!   rD   v   s    rD   c                       s&   e Zd Z				d fdd	Z  ZS )	CardErrorNc                    $   t t| |||||| || _d S r%   )r   rF   r   rE   r   r   rE   r   r
   r   r   r   r   r    r!   r      rB   zCardError.__init__)NNNNr(   r5   r6   r   r;   r    r    r   r!   rF      s    rF   c                   @   r<   )IdempotencyErrorNr>   r    r    r    r!   rJ      r?   rJ   c                       s(   e Zd Z					d fdd	Z  ZS )InvalidRequestErrorNc                    rG   r%   )r   rK   r   rE   rH   r   r    r!   r      rB   zInvalidRequestError.__init__)NNNNNrI   r    r    r   r!   rK      s    rK   c                   @   r<   )AuthenticationErrorNr>   r    r    r    r!   rL      r?   rL   c                   @   r<   )PermissionErrorNr>   r    r    r    r!   rM      r?   rM   c                   @   r<   )RateLimitErrorNr>   r    r    r    r!   rN      r?   rN   c                       s   e Zd Zd fdd	Z  ZS )SignatureVerificationErrorNc                    s   t t| || || _d S r%   )r   rO   r   
sig_header)r   r   rP   r
   r   r    r!   r      s   
z#SignatureVerificationError.__init__r%   rI   r    r    r   r!   rO      s    rO   c                   @   r<   )TemporarySessionExpiredErrorNr>   r    r    r    r!   rQ      r?   rQ   N)typingr   r   r   r   r1   r   	Exceptionr   r=   r@   rD   rF   rJ   rK   rL   rM   rN   rO   rQ   r    r    r    r!   <module>   s    Y