
    h                         d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dl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)InvalidRequestError)StripeObject)extract_options_from_dict)ApiMode)BaseAddress)_APIRequestor)_util)
quote_plus)AnyClassVarGenericListOptionalTypeVarcastMappingT)boundc                   P   e Zd ZU ee   ed<   e ej                  d      de	fd              Z
defdZdefdZedefd       ZdefdZ	 dd
dddededefdZ	 dd
dddededefdZ	 	 dd
ddded   dedeeeef      deee      dededefdZ	 	 dd
ddded   dedeeeef      deee      dededefdZe	 dd
ddeeeef      defd       Ze	 dd
ddeeeef      defd       Ze	 dd
ddeeeef      defd       Ze	 dd
ddeeeef      defd       Zy	)APIResourceOBJECT_NAMEzThis method is deprecated and will be removed in a future version of stripe-python. Child classes of APIResource should define their own `retrieve` and use APIResource._request directly.returnc                 T     | |fi |}|j                          t        t        |      S N)refreshr   r   )clsidparamsinstances       T/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/stripe/_api_resource.pyretrievezAPIResource.retrieve   s,    
 r$V$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                 ^   K   | j                  d| j                                d {   S 7 wr&   )_request_and_refresh_asyncr)   r*   s    r"   refresh_asynczAPIResource.refresh_async(   s1     444$$&
 
 	
 
s   $-+-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              s2t        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`)r1   )r'   
isinstancestrr   type__name__r6   r   )r+   r   r5   extns       r"   r)   zAPIResource.instance_url9   sj    XXd^"c"% "&d!4!4b$r(D 	  ~~"~%%r$   NapiV1)base_addressapi_moder?   r@   c                    t        j                  | ||||      }t        |       t        |      u r| j                  ||       | S |S N)r    r?   valuesr@   )r   _requestr:   _refresh_fromr+   methodurlr    r?   r@   objs          r"   rE   zAPIResource._requestH   sR     ##%
 :c"cH=KJr$   c                   K   t        j                  | ||||       d {   }t        |       t        |      u r| j                  ||       | S |S 7 1wrB   )r   _request_asyncr:   rF   rG   s          r"   rL   zAPIResource._request_async_   s`      !//%
 
 :c"cH=KJ
s   AA2ArH   )r'   postdeleterI   r    usagec                b    t        j                  | |||||      }| j                  ||       | S N)r    r?   rO   rC   )r   rE   rF   r+   rH   rI   r    rO   r?   r@   rJ   s           r"   r(   z APIResource._request_and_refreshv   s@     ##%
 	#9r$   c                ~   K   t        j                  | |||||       d {   }| j                  ||       | S 7 wrQ   )r   rL   rF   rR   s           r"   r-   z&APIResource._request_and_refresh_async   sN      !//%
 
 	#9
s   =;=)r?   c                n    t        |      \  }}t        j                         j                  |||||      S N)r    optionsr?   )r   r
   _global_instancerequestr   method_url_r    r?   request_optionsrequest_paramss          r"   _static_requestzAPIResource._static_request   sD     +DF*K'--/77!#% 8 
 	
r$   c                   K   t        |      \  }}t        j                         j                  |||||       d {   S 7 wrU   )r   r
   rW   request_asyncrY   s          r"   _static_request_asyncz!APIResource._static_request_async   sS      +DF*K'"335CC!#% D 
 
 	
 
   :AAAc                n    t        |      \  }}t        j                         j                  |||||      S rU   )r   r
   rW   request_streamr   rH   rI   r    r?   r\   r]   s          r"   _static_request_streamz"APIResource._static_request_stream   sD     +DF*K'--/>>!#% ? 
 	
r$   c                   K   t        |      \  }}t        j                         j                  |||||       d {   S 7 wrU   )r   r
   rW   request_stream_asyncre   s          r"   _static_request_stream_asyncz(APIResource._static_request_stream_async   sS      +DF*K'"335JJ!#% K 
 
 	
 
rb   r   )NN) r;   
__module____qualname__r   r9   __annotations__classmethodr   
deprecatedr   r#   r   r   r.   r6   r)   r	   r   r   rE   rL   r   r   r   r   r   r(   r-   r^   ra   rf   ri    r$   r"   r   r      s   #U 	E!q ! !
E E
T 

 	## 	# 	#&c && 	 %*  "  
6 	 %*  "  
6 /3%) %* /0  c*+	
 S	" "  
4 /3%) %* /0  c*+	
 S	" "  
, 
 /3	
 %*
 c*+	
 "
 
" 
 /3	
 %*
 c*+	
 "
 
" 
 /3	
 %*
 c*+	
 "
 
" 
 /3	
 %*
 c*+	
 "
 
r$   r   N)typing_extensionsr   r   stripe._errorr   stripe._stripe_objectr   stripe._request_optionsr   stripe._api_moder   stripe._base_addressr	   stripe._api_requestorr
   striper   urllib.parser   typingr   r   r   r   r   r   r   r   r   r   ro   r$   r"   <module>rz      sQ    + - . = $ , /  #	 	 	 C|$O
,
 O
r$   