
    jof7O              	          d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZ d dlZd dl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  d d
l!m"Z" erd dlm#Z# edee$e
f         deee$e
f                  dee$e
f         fd            Z%ede&deee$e
f                  de&fd            Z%de&deee$e
f                  de&fdZ%deee
                  dee
         dee$e
f         fdZ' G d dee$e
f                   Z(dS )    N)deepcopy)TYPE_CHECKINGTypeLiteralSelf)AnyDictListOptionalMappingSetTupleClassVarUnioncastoverload)_util)StripeResponseStripeStreamResponseStripeStreamResponseAsync)_encode_datetime)extract_options_from_dict)ApiMode)BaseAddress)_APIRequestorcurrentpreviousreturnc                     d S N r   r   s     O/var/www/html/Alfredo/env/lib/python3.11/site-packages/stripe/_stripe_object.py_compute_diffr$   &   s	     S    c                     d S r    r!   r"   s     r#   r$   r$   ,   s	     Sr%   c                 P   t          | t                    rt          t          t          t
          f         |           } |pi }|                                 }t          |                                          t          |                                          z
  D ]}d||<   |S | | ndS )N )	
isinstancedictr   r	   strr   copysetkeys)r   r   diffkeys       r#   r$   r$   2   s     '4   tCH~w//>r||~~x}}''#diikk*:*:: 	 	CDII)77r1r%   arrayc                 *   | pg } |pg }i }t          |           D ]x\  }}t          |          |k    r||         nd }t          |d          r&|                    |          |t	          |          <   Xt          ||          |t	          |          <   y|S )N	serialize)	enumeratelenhasattrr3   r+   r$   )r1   r   paramsivprevious_items         r#   _serialize_listr;   ?   s     KRE~2HF%   = =1'*8}}q'8'8d1k"" 	=[[77F3q66NN*1m<<F3q66NNMr%   c                        e Zd ZU  G d dej                  Zeeef         e	d<   e
eeef                  e	d<   	 	 	 	 	 dQddde
e         de
e         d	e
e         d
e
e         de
e         de
d         def fdZed             Zed             Zed             Zede
e         fd            Zdeeef         ddf fdZes fdZd Z fdZdededdf fdZdedef fdZdeddf fdZdeeef         ddfd Zdeed!f         fd"Ze	 	 	 dRd#d$d%eeef         d&e
e         d	e
e         d
e
e         de
e         d'ede fd(            Z!edd)d%eeef         de
e         d*dd'ede f
d+            Z"	 	 	 	 	 dSd#d$d%eeef         de
e         d-e
e#         d	e
e         d
e
e         de
e         d'eddfd.Z$d,ddd/d%eeef         d-e
e#         de
e         d*e
d         d'eddf fd0Z% e&j'        d1          	 dTd2d#d3d4e(d5         d6ede
eeef                  d7e)d'edd fd8            Z*	 	 dUd4e(d5         d6ede
eeef                  d9e
e+e                  d7e)d'edd fd:Z,	 	 dUd4e(d5         d6ede
eeef                  d9e
e+e                  d7e)d'edd fd;Z-	 dTd2d#d3d4ed6ede
eeef                  d7e)d'ede.fd<Z/	 dTd2d#d3d4ed6ede
eeef                  d7e)d'ede0fd=Z1defd>Z2defd?Z3 e&j'        d@          deeef         fdA            Z4deeef         fdBZ5 e&j'        dC          deeef         fdD            Z6e e&j'        dC          de
e         fdE                        Z7dFe
eeef                  deeef         fdGZ8dV fdHZ9dIee:ef         dd f fdJZ;i Z<e=eeef                  e	dK<   i Z>e=eee?d          f                  e	dL<   g Z@e=e+e                  e	dM<   dNede
e?d                   fdOZAdNefdPZB xZCS )WStripeObjectc                   (     e Zd Zdedef fdZ xZS )StripeObject._ReprJSONEncoderor   c                     t          |t          j                  rt          |          S t          t          j        |                               |          S r    )r)   datetimer   superr=   _ReprJSONEncoderdefault)selfr@   	__class__s     r#   rE   z%StripeObject._ReprJSONEncoder.defaultR   sI    !X.// + (***6==EEaHHHr%   )__name__
__module____qualname__r   rE   __classcell__rG   s   @r#   rD   r?   Q   sW        	IS 	IS 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Ir%   rD   _retrieve_params	_previousN)
_requestoridapi_keystripe_versionstripe_accountlast_responserO   r   r7   c                4   t          t          |                                            t                      | _        t                      | _        || _        || _        d | _        |"t          j
                            |||          n|| _        |r|| d<   d S d S )NrQ   rR   rS   rP   )rC   r=   __init__r-   _unsaved_values_transient_values_last_responserM   rN   striper   _global_with_optionsrO   )	rF   rP   rQ   rR   rS   rT   rO   r7   rG   s	           r#   rW   zStripeObject.__init__\   s     	lD!!**,,,),+.55+ & !  55-- 6     	  	DJJJ	 	r%   c                     | j         j        S r    )rO   rQ   rF   s    r#   rQ   zStripeObject.api_key~   s    &&r%   c                     | j         j        S r    )rO   rS   r^   s    r#   rS   zStripeObject.stripe_account       --r%   c                     | j         j        S r    )rO   rR   r^   s    r#   rR   zStripeObject.stripe_version   r`   r%   r   c                     | j         S r    )rZ   r^   s    r#   rT   zStripeObject.last_response   s    ""r%   update_dictc                     |D ]}| j                             |           t          t          |                               |          S r    )rX   addrC   r=   update)rF   rc   krG   s      r#   rf   zStripeObject.update   sL      	( 	(A $$Q''''\4((//<<<r%   c                     |dv r#| j                             ||i          | _         d S |d         dk    s	|| j        v r)t          t          |                               ||          S || |<   d S )N>   rQ   rS   rR   r   _)rO   _replace_options__dict__rC   r=   __setattr__rF   rg   r9   rG   s      r#   rl   zStripeObject.__setattr__   sv    CCC"&/"B"BAq6"J"Jtts{{a4=00\400<<QBBBDG4r%   c                     |d         dk    rt          |          	 || j        v r| j        |         }| |         S # t          $ r}t          |j         d }~ww xY wNr   ri   )AttributeError_field_remappingsKeyErrorargs)rF   rg   errs      r#   __getattr__zStripeObject.__getattr__   sr    ts{{$Q'''0....q1AAw 0 0 0$ch//0s   ; 
AAAc                     |d         dk    s	|| j         v r(t          t          |                               |          S | |= d S ro   )rk   rC   r=   __delattr__rF   rg   rG   s     r#   rw   zStripeObject.__delattr__   sE    ts{{a4=00\400<<Q???GGGr%   rg   r9   c                 2   |dk    r)t          d|dt          |           d|d|d	          t          | d          st                      | _        | j                            |           t          t          |                               ||           d S )Nr(   zYou cannot set z to an empty string on this object. The empty string is treated specially in our requests. If you'd like to delete the property using the save() method on this object, you may set .z#=None. Alternatively, you can pass zI='' to delete the property when using a resource method such as modify().rX   )	
ValueErrorr+   r6   r-   rX   re   rC   r=   __setitem__rm   s      r#   r|   zStripeObject.__setitem__   s    77*
 11c$iiiiAAA	'   t.// 	)#&55D   ###lD!!--a33333r%   c                 "   	 t          t          |                               |          S # t          $ rY}|| j        v rIt          |d|dd                    t          |                                                               |d }~ww xY w)Nz.  HINT: The z attribute was set in the past.It was then wiped when refreshing the object with the result returned by Stripe's API, probably as a result of a save().  The attributes currently available on this object are: z, )rC   r=   __getitem__rr   rY   joinlistr.   )rF   rg   rt   rG   s      r#   r~   zStripeObject.__getitem__   s    	t,,88;;; 	 	 	D*** qq!!!TYYtDIIKK'8'8999;   		s   '+ 
BAB		Bc                     t          t          |                               |           t          | d          r%|| j        v r| j                            |           d S d S d S )NrX   )rC   r=   __delitem__r6   rX   removerx   s     r#   r   zStripeObject.__delitem__   sp    lD!!--a000 4*++ 	+T5I0I0I ''*****	+ 	+0I0Ir%   statec                 0    |                      |           d S r    )rf   )rF   r   s     r#   __setstate__zStripeObject.__setstate__   s    Er%   .c                     t          |           |                     dd           | j        | j        | j        ft          |           f}|S NrP   )typegetrQ   rR   rS   r*   )rF   reduce_values     r#   
__reduce__zStripeObject.__reduce__   sL    JJt$$##	 JJ	
 r%   V1)api_modevaluesr0   r   c                t    |                      |t          j                            |||          ||          S )NrV   )r   	requestorr   rT   )_construct_fromr[   r   r\   )clsr   r0   rR   rS   rT   r   s          r#   construct_fromzStripeObject.construct_from   sQ     ""*??-- @  
 ' # 	
 	
 		
r%   )rT   r   c                z     | |                     d          ||          }|                    ||||           |S )NrP   )rT   rO   )r   rT   r   r   )r   _refresh_from)r   r   rT   r   r   instances         r#   r   zStripeObject._construct_from  sa     3JJt' 
 
 

 	'	 	 	
 	
 	
 r%   Fpartialc                r    |                      |||| j                            |||d          |           d S )NrV   )r   r   rT   r   r   )r   rO   rj   )rF   r   rQ   r   rR   rS   rT   r   s           r#   refresh_fromzStripeObject.refresh_from!  sa     	'o66&&4&4    	 	
 	
 	
 	
 	
r%   )r   rT   r   c                l    |p j          _         |pt          |dd            _        |r j        t	          |          z
   _        ngt	                                                     t	          |          z
  } j        |z   _        t	                       _                                           j        t	          |          z
   _        |                                D ]\  }} 	                    |           
                    |          }	|	r# fd|                                D             }
nNt          t          t          t          t                   f         t          j        |d  j                             }
t#          t                                         ||
           | _        d S )NrZ   c                     i | ];\  }}||d n0t          t          t          j        |d j                            <S )Nrespr7   klass_r   r   )r   r=   r   _convert_to_stripe_objectrO   ).0rg   r9   r   inner_classrF   s      r#   
<dictcomp>z.StripeObject._refresh_from.<locals>.<dictcomp>Y  sq        1 y t$7!"#'#.&*o%-  	 	  r%   r   )rO   getattrrZ   rX   r-   r.   rY   clearitems_get_inner_class_type _get_inner_class_is_beneath_dictr   r   r=   r
   r   r   rC   r|   rN   )rF   r   r   rT   r   r   removedrg   r9   is_dictobjr   rG   s   `    `     @r#   r   zStripeObject._refresh_from:  s    $6t+ 
w$d0
 0
  	#'#7#f++#ED  $))++&&V4G%)%;g%ED"#&55D JJLLL!%!7#f++!ELLNN 	: 	:DAq44Q77K;;A>>G       !"		    ,\(::;3#*"&/!)  	 	 ,%%11!S9999r%   z:This will be removed in a future version of stripe-python.api)base_addressr   method)r   postdeleteurlr   c                B    t                               | |||||          S )N)r7   r   r   )r=   _request)rF   r   r   r7   r   r   s         r#   requestzStripeObject.requestw  s3     $$% % 
 
 	
r%   usagec          	      z    || j         }t          |          \  }}| j                            |||||||          S N)r7   optionsr   r   r   )rM   r   rO   r   	rF   r   r   r7   r   r   r   request_optionsrequest_paramss	            r#   r   zStripeObject._request  sW     >*F*CF*K*K'&&!#% ' 
 
 	
r%   c          	         K   || j         }t          |          \  }}| j                            |||||||           d {V S r   )rM   r   rO   request_asyncr   s	            r#   _request_asynczStripeObject._request_async  sy       >*F*CF*K*K'_22!#% 3 
 
 
 
 
 
 
 
 	
r%   c                x    || j         }t          |          \  }}| j                            ||||||          S N)r7   r   r   r   )rM   r   rO   request_streamrF   r   r   r7   r   r   r   r   s           r#   _request_streamzStripeObject._request_stream  sT     >*F*CF*K*K'--!#% . 
 
 	
r%   c                   K   || j         }t          |          \  }}| j                            ||||||           d {V S r   )rM   r   rO   request_stream_asyncr   s           r#   _request_stream_asyncz"StripeObject._request_stream_async  sv       >*F*CF*K*K'_99!#% : 
 
 
 
 
 
 
 
 	
r%   c                    t          |           j        g}|                     d          }t          |t                    r|                    |           t          |                     d          t                    r+|                    d|                     d                     dd                    |          dt          t          |                     dt	          |           }|S )NobjectrP   zid=< z at z> JSON: )	r   rH   r   r)   r+   appendr   hexrP   )rF   ident_partsobj_strunicode_reprs       r#   __repr__zStripeObject.__repr__  s    Dzz*+((8$$gs## 	(w'''dhhtnnc** 	<$((4...:;;; HH[!!!!4MMMMIII

 r%   c                 `    t          j        |                                 dd| j                  S )NT   )	sort_keysindentr   )jsondumps_to_dict_recursiverD   r^   s    r#   __str__zStripeObject.__str__  s6    z##%%%	
 
 
 	
r%   zEDeprecated. The public interface will be removed in a future version.c                      t          |           S r    )r*   r^   s    r#   to_dictzStripeObject.to_dict  s     Dzzr%   c                    dt           t          t          t          t          t
          f         f                  dt           t          t          t
          f                  fdfdt          |                                           D             S )Nvaluer   c                 `    | d S t          | t                    r|                                 S | S r    )r)   r=   r   )r   s    r#   maybe_to_dict_recursivez@StripeObject._to_dict_recursive.<locals>.maybe_to_dict_recursive
  s7     }tE<00 //111r%   c                     i | ]a\  }}|t          |t                    r;t          t          t          t          t
                   |                              n
 |          bS r!   )r)   r   mapr   r
   r   )r   r0   r   r   s      r#   r   z3StripeObject._to_dict_recursive.<locals>.<dictcomp>  su     
 
 
 U %&&0c14S	53I3IJJKKK((//
 
 
r%   )r   r   r=   r	   r+   r   r*   r   )rF   r   s    @r#   r   zStripeObject._to_dict_recursive	  s    	E,S#X">?@	d38n%	 	 	 	
 
 
 
 #4jj..00	
 
 
 	
r%   z^For internal stripe-python use only. The public interface will be removed in a future version.c                 *    |                                  S r    )r   r^   s    r#   to_dict_recursivezStripeObject.to_dict_recursive  s     &&(((r%   c                 "    t          | d          S r   )r   r^   s    r#   	stripe_idzStripeObject.stripe_id!  s    
 tT"""r%   r   c                 ,   i }| j         pt                      }|p| j        pi }|                                 D ]\  }}|dk    s|                    d          r!t          |t          j                  r<t          |d          r5|	                    |
                    |d                     }|i k    r|||<   ||v r(t          ||
                    |d                     ||<   |dk    r)|'t          ||
                    |d                     ||<   |S )NrP   ri   r3   additional_owners)rX   r-   rN   r   
startswithr)   r[   APIResourcer6   r3   r   r$   r;   )rF   r   r7   unsaved_keysrg   r9   childs          r#   r3   zStripeObject.serialize(  s'    "$+4suu3t~3JJLL 	F 	FDAqDyyALL--yAv122 	FK(( FHLLD$9$9::B;; %F1Il"")!X\\!T-B-BCCq		)))am+Ax||At/D/DEEq	r%   c                    t          |                     d          | j        | j        | j                  }| j        |_        |                                 D ].\  }}t          t           |                              ||           /|S )NrP   )rR   rS   )	r=   r   rQ   rR   rS   rM   r   rC   r|   )rF   copiedrg   r9   rG   s       r#   __copy__zStripeObject.__copy__D  s    HHTNNL..	
 
 
 #'"7JJLL 	: 	:DAq ,''33Aq9999r%   memoc                     |                                  }||t          |           <   |                                 D ]<\  }}t          t          |                              |t          ||                     =|S r    )r   rP   r   rC   r=   r|   r   )rF   r   r   rg   r9   rG   s        r#   __deepcopy__zStripeObject.__deepcopy__Z  sp    RXXJJLL 	J 	JDAq ,''33Ax47H7HIIIIr%   rq   _inner_class_types_inner_class_dicts
field_namec                 6    | j                             |          S r    )r   r   rF   r   s     r#   r   z"StripeObject._get_inner_class_typej  s     &**:666r%   c                     || j         v S r    )r   r   s     r#   r   z-StripeObject._get_inner_class_is_beneath_dicto  s    T444r%   )NNNNN)NNN)NFNNNr    )NN)r   r=   )DrH   rI   rJ   r   JSONEncoderrD   r   r+   r   __annotations__r   r   rW   propertyrQ   rS   rR   rT   rf   r   rl   ru   rw   r|   r~   r   r	   r   r   r   classmethodr   r   r   r   boolr   r   r   
deprecatedr   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r3   r   intr   rq   r   r   r   r   r   r   rK   rL   s   @r#   r=   r=   P   s%
        I I I I I4+ I I I c3h''''S)**** !!%(,(,26  15     SM  #  !	 
 !   /  _-             D ' ' X' . . X. . . X. #x7 # # # X#
="38,=	= = = = = =  		 		 		 		 				0 		0 		0	 	 	 	 	4S 4S 4T 4 4 4 4 4 4$S S       +S +T + + + + + +$sCx. T    E#s(O     
 )-(,26
 !
 
 
S#X
 c]
 !	

 !
  /
 
 

 
 
 [
* 
 37	   S#X  /	
 #  
   [0 "&"'(,(,26
 !
 
 
S#X
 #
 $	

 !
 !
  /
 
 

 
 
 
: #(26/3;  ;  ;  S#X;  $	; 
  /;  O,;  ;  
;  ;  ;  ;  ;  ; z UD  ,0	
 %* 
 
 
/0
 
 c3h(	
 "
 
 

 
 
 
, /3%)
 
/0
 
 c*+	

 S	"
 "
 
 

 
 
 
: /3%)
 
/0
 
 c*+	

 S	"
 "
 
 

 
 
 
: /3	
 %* 
 
 

 
 c*+	
 "
 
 

 
 
 
4 /3	
 %* 
 
 

 
 c*+	
 "
 
 
#
 
 
 
,#    "
 
 
 
 
 UO c3h    
DcN 
 
 
 
$ Uh )4S> ) ) ) ) Uh #8C= # # #  X# c!23	c3h   8     ,	c3h 	N 	 	 	 	 	 	 35xS#X/444DFc4+?&?!@AFFF.0c+00077	$~&	'7 7 7 7
53 5 5 5 5 5 5 5 5r%   r=   ))rB   r   r,   r   typing_extensionsr   r   r   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r[   r   stripe._stripe_responser   r   r   stripe._encoder   stripe._request_optionsr   stripe._api_moder   stripe._base_addressr   r   r+   r$   r   r;   r=   r!   r%   r#   <module>r     s           @ @ @ @ @ @ @ @ @ @ @ @                                         
 , + + + + + = = = = = = $ $ $ $ $ $ , , , , , , %$$$$$$ 
#s(^'/S#X'?	#s(^   

 
'S#X7   


2
2'S#X7
2
2 
2 
2 
2DI*.s)	#s(^   "`5 `5 `5 `5 `54S> `5 `5 `5 `5 `5r%   