o
    ˷e                     @   s   d dl mZmZmZ d dlZd dlmZ e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 )    )absolute_importdivisionprint_functionN)python_2_unicode_compatiblec                       sN   e Zd Z						d fdd	Zdd Zedd Zdd	 Zd
d Z  Z	S )StripeErrorNc                    s   t t| | |r"t|dr"z|d}W n ty!   d}Y nw || _|| _|| _|| _	|p1i | _
|| _| 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   BaseException_message	http_bodyhttp_status	json_bodyheaderscodeget
request_idconstruct_error_objecterror)selfmessager   r   r   r   r   	__class__ C/var/www/ideatree/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__&   s   

zStripeError.__str__c                 C   s   | j S N)r   r   r   r   r   user_message1   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__5   s   zStripeError.__repr__c                 C   sB   | j d u sd| j vst| j d tsd S tjjj| j d tjS )Nr   )	r   
isinstancedictstripeapi_resourceserror_objectErrorObjectconstruct_fromapi_keyr    r   r   r   r   =   s   


z"StripeError.construct_error_object)NNNNNN)
r"   
__module____qualname__r	   r   propertyr!   r#   r   __classcell__r   r   r   r   r      s    
r   c                   @      e Zd ZdS )APIErrorNr"   r,   r-   r   r   r   r   r1   J       r1   c                       s*   e Zd Z						d fdd	Z  ZS )APIConnectionErrorNFc                    s$   t t| |||||| || _d S r   )r   r4   r	   should_retry)r   r   r   r   r   r   r   r5   r   r   r   r	   O      


zAPIConnectionError.__init__)NNNNNFr"   r,   r-   r	   r/   r   r   r   r   r4   N   s    r4   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#   `   s   z!StripeErrorWithParamCode.__repr__N)r"   r,   r-   r#   r   r   r   r   r8   _   s    r8   c                       s&   e Zd Z				d fdd	Z  ZS )	CardErrorNc                    $   t t| |||||| || _d S r   )r   r:   r	   r9   r   r   r9   r   r   r   r   r   r   r   r   r	   p   r6   zCardError.__init__)NNNNr7   r   r   r   r   r:   o   s    r:   c                   @   r0   )IdempotencyErrorNr2   r   r   r   r   r=      r3   r=   c                       s(   e Zd Z					d fdd	Z  ZS )InvalidRequestErrorNc                    r;   r   )r   r>   r	   r9   r<   r   r   r   r	      r6   zInvalidRequestError.__init__)NNNNNr7   r   r   r   r   r>      s    r>   c                   @   r0   )AuthenticationErrorNr2   r   r   r   r   r?      r3   r?   c                   @   r0   )PermissionErrorNr2   r   r   r   r   r@      r3   r@   c                   @   r0   )RateLimitErrorNr2   r   r   r   r   rA      r3   rA   c                       s   e Zd Zd fdd	Z  ZS )SignatureVerificationErrorNc                    s   t t| || || _d S r   )r   rB   r	   
sig_header)r   r   rC   r   r   r   r   r	      s   
z#SignatureVerificationError.__init__r   r7   r   r   r   r   rB      s    rB   )
__future__r   r   r   r&   
stripe.sixr   	Exceptionr   r1   r4   r8   r:   r=   r>   r?   r@   rA   rB   r   r   r   r   <module>   s    B