o
    Bi                     @   s   d dl mZmZmZmZ d dl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dS )    )DictOptionalUnioncastN)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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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_iderrorNmessagec                    s   t t| | d }|r't|dr'z
tt|d}W n ty&   d}Y nw || _|| _	|| _
|| _|p6i | _|| _| 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   BaseExceptionr   r	   r
   r   r   r   getr   _construct_error_objectr   )selfr   r	   r
   r   r   r   body	__class__ M/var/www/html/Trade-python/venv/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__0   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__?   s   zStripeError.__repr__returnc                 C   sP   | j d u st| j trd| j vst| j d tsd S tj| j d tj ddS )Nr   V1)values	requestorapi_mode)r   
isinstancedictr   _construct_fromstripe_APIRequestor_global_instancer#   r   r   r   r   G   s   


z#StripeError._construct_error_object)NNNNNN)r%   
__module____qualname__r   str__annotations__intobjectr   r   r   r   r   r!   propertyr$   r&   r   __classcell__r   r   r   r   r      sB   
 
r   c                   @      e Zd ZdS )APIErrorNr%   r2   r3   r   r   r   r   r;   W       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   r?   )r   r   r	   r
   r   r   r   r?   r   r   r   r   ^      


zAPIConnectionError.__init__)NNNNNF)r%   r2   r3   boolr5   r   r9   r   r   r   r   r>   [   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&   o   s   z!StripeErrorWithParamCode.__repr__N)r%   r2   r3   r&   r   r   r   r   rB   n   s    rB   c                       s&   e Zd Z				d fdd	Z  ZS )	CardErrorNc                    $   t t| |||||| || _d S r"   )r   rD   r   rC   r   r   rC   r   r	   r
   r   r   r   r   r   r      r@   zCardError.__init__)NNNNr%   r2   r3   r   r9   r   r   r   r   rD   ~   s    rD   c                   @   r:   )IdempotencyErrorNr<   r   r   r   r   rH      r=   rH   c                       s(   e Zd Z					d fdd	Z  ZS )InvalidRequestErrorNc                    rE   r"   )r   rI   r   rC   rF   r   r   r   r      r@   zInvalidRequestError.__init__)NNNNNrG   r   r   r   r   rI      s    rI   c                   @   r:   )AuthenticationErrorNr<   r   r   r   r   rJ      r=   rJ   c                   @   r:   )PermissionErrorNr<   r   r   r   r   rK      r=   rK   c                   @   r:   )RateLimitErrorNr<   r   r   r   r   rL      r=   rL   c                       s   e Zd Zd fdd	Z  ZS )SignatureVerificationErrorNc                    s   t t| || || _d S r"   )r   rM   r   
sig_header)r   r   rN   r	   r   r   r   r      s   
z#SignatureVerificationError.__init__r"   rG   r   r   r   r   rM      s    rM   )typingr   r   r   r   r/   stripe._error_objectr   	Exceptionr   r;   r>   rB   rD   rH   rI   rJ   rK   rL   rM   r   r   r   r   <module>   s    O