
    +h                         d dl mZmZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZ  ede      Z G d d	eee         Zy
)    )LiteralSelf)api_requestorerrorutil)StripeObject)
quote_plus)AnyClassVarDictGenericOptionalTypeVarcastMappingT)boundc                   .   e Zd ZU ee   ed<   eddefd       Zde	fdZ
edefd       ZdefdZ	 	 	 	 	 	 ddefdZ	 	 	 	 	 	 dd	ed
   dedee   dee   dee   dee   deeeef      deeeef      de	fdZe	 	 	 	 	 dd       Ze	 	 	 	 	 dd       Zy)APIResourceOBJECT_NAMENreturnc                 V     | ||fi |}|j                          t        t        |      S N)refreshr   r   )clsidapi_keyparamsinstances        ]/var/www/html/venv/lib/python3.12/site-packages/stripe/api_resources/abstract/api_resource.pyretrievezAPIResource.retrieve   s,    r7-f-Ax      c                 B    | j                  d| j                               S )Nget)_request_and_refreshinstance_url)selfs    r    r   zAPIResource.refresh   s    ((0A0A0CDDr"   c                 n    | t         k(  rt        d      | j                  j                  dd      }d|dS )NzgAPIResource is an abstract class.  You should perform actions on its subclasses (e.g. Charge, Customer)./z/v1/s)r   NotImplementedErrorr   replace)r   bases     r    	class_urlzAPIResource.class_url    s>    +%D  &&sC0 ""r"   c           
          | j                  d      }t        |t              s<t        j                  dt        |       j                  d|dt        |      dd      | j                         }t        |      }|d|S )Nr   z*Could not determine which URL to request: z instance has invalid ID: z, z+. ID should be of type `str` (or `unicode`)r*   )	r$   
isinstancestrr   InvalidRequestErrortype__name__r/   r	   )r'   r   r.   extns       r    r&   zAPIResource.instance_url,   sp    XXd^"c"++ "&d!4!4b$r(D 	  ~~"~%%r"   c	                     t        j                  | ||||||||	      }	t        |       t        |	      u r| j                  |	       | S |	S r   )r   _requestr4   refresh_from
r'   method_url_r   idempotency_keystripe_versionstripe_accountheadersr   objs
             r    r8   zAPIResource._request=   sY     ##

 :c"c"KJr"   r;   )r$   postdeleter<   r   r=   r>   r?   r@   r   c	                 b    t        j                  | ||||||||	      }	| j                  |	       | S r   )r   r8   r9   r:   s
             r    r%   z APIResource._request_and_refresh\   sD     ##

 	#r"   c                    |d n|j                         }t        j                  |d|      }t        j                  |d|      }t        j                  |d|      }t        j                  |d|      }t        j                  |dd       }t        j                  |||      }	|8|i n|j                         }|j                  t        j                  |             |	j                  ||||      \  }
}t        j                  |
||||      S Nr   r=   r>   r?   r@   )api_versionaccount)	copyr   read_special_variabler   APIRequestorupdatepopulate_headersrequestconvert_to_stripe_object)r   r;   r<   r   r=   r>   r?   r   r@   	requestorresponses              r    _static_requestzAPIResource._static_requestx   s     V[[],,VYH44%
 33$n
 33$n
 ,,VYE!..
	 &#ObGNN400AB%--gtVWM',,g~~v
 	
r"   c                    |d n|j                         }t        j                  |d|      }t        j                  |d|      }t        j                  |d|      }t        j                  |d|      }t        j                  |dd       }t        j                  |||      }	|8|i n|j                         }|j                  t        j                  |             |	j                  ||||      \  }
}|
S rF   )rI   r   rJ   r   rK   rL   rM   request_stream)r   r;   r<   r   r=   r>   r?   r   r@   rP   rQ   _s               r    _static_request_streamz"APIResource._static_request_stream   s      V[[],,VYH44%
 33$n
 33$n
 ,,VYE!..
	 &#ObGNN400AB..wfgN!r"   r   )NNNNNN)NNNNN)r5   
__module____qualname__r   r2   __annotations__classmethodr   r!   r   r   r/   r&   r   r8   r   r   r   r   r
   r%   rR   rV    r"   r    r   r      sk   #!Q ! !
E E 	## 	# 	#&c &*  
F "&)-(,(,,0.201  #	
 "# ! ! $sCx.) c*+ 
8 
 "
 "
L 
    r"   r   N)typing_extensionsr   r   striper   r   r   stripe.stripe_objectr   urllib.parser	   typingr
   r   r   r   r   r   r   r   r   r   r[   r"   r    <module>ra      sE    + - - - #	 	 	 C|$l,
 lr"   