
    +h!C              	       x   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mZ d dlmZ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y)    N)deepcopy)TYPE_CHECKINGTypeLiteralSelf)AnyDictListOptionalMappingSetTupleClassVarUnioncastoverload)api_requestorutil)StripeResponseStripeStreamResponsecurrentpreviousreturnc                      y N r   r   s     G/var/www/html/venv/lib/python3.12/site-packages/stripe/stripe_object.py_compute_diffr               c                      y r   r   r   s     r   r   r   !   r    r!   c                    t        | t              rrt        t        t        t
        f   |       } |xs i }| j                         }t        |j                               t        |j                               z
  D ]  }d||<   	 |S | | S dS )N )	
isinstancedictr   r	   strr   copysetkeys)r   r   diffkeys       r   r   r   (   s~     '4 tCH~w/>r||~x}}'#diik*:: 	CDI	)71r1r!   arrayc                     | xs g } |xs g }i }t        |       D ]\  \  }}t        |      |kD  r||   nd }t        |d      r|j                  |      |t	        |      <   Et        ||      |t	        |      <   ^ |S )N	serialize)	enumeratelenhasattrr/   r'   r   )r-   r   paramsivprevious_items         r   _serialize_listr7   5   s     KRE~2HF%  =1'*8}q'8d1k"[[7F3q6N*1m<F3q6N= 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<   e
e   e	d<   e
e   e	d<   e
e   e	d<   	 	 	 	 	 d<d	e
e   de
e   de
e   de
e   d
e
e   def f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	 	 	 d=deeef   de
e   de
e   de
e   d
e
e   defd       Z	 	 	 	 	 d>deeef   de
e   d e
e   de
e   de
e   d
e
e   ddf fd!Zede
e   fd"       Z 	 	 d?d#e!d$   d%ede
eeef      d&e
eeef      dd 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d fd+Z#	 	 d?d#ed%ede
eeef      d&e
eeef      de$f
d,Z%defd-Z&defd.Z'deeef   fd/Z(deeef   fd0Z)ede
e   fd1       Z*d2e
eeef      deeef   fd3Z+def fd4Z,d5ee-ef   def fd6Z.i Z/e0eee1d    f      e	d7<   g Z2e0e3e      e	d8<   d9ede
e1d       fd:Z4d9efd;Z5 xZ6S )A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        j                  |      S t        t
        j                  |   |      S r   )r%   datetimer   _encode_datetimesuperr9   ReprJSONEncoderdefault)selfr<   	__class__s     r   rB   z$StripeObject.ReprJSONEncoder.defaultH   s>    !X../ %55a8855tDQGGr!   )__name__
__module____qualname__r   rB   __classcell__rD   s   @r   rA   r;   G   s    	HS 	HS 	H 	Hr!   rA   _retrieve_params	_previousapi_keystripe_versionstripe_accountNidlast_responser3   c                 *   t         t        |           t               | _        t               | _        || _        || _        d | _        t        j                  | d|       t        j                  | d|       t        j                  | d|       |r|| d<   y y )NrL   rM   rN   rO   )r@   r9   __init__r)   _unsaved_values_transient_values_last_responserJ   rK   object__setattr__)rC   rO   rL   rM   rN   rP   r3   rD   s          r   rR   zStripeObject.__init__V   s     	lD*,),+.5+ &4G44!1>B4!1>BDJ r!   r   c                     | j                   S r   )rU   rC   s    r   rP   zStripeObject.last_responsep   s    """r!   update_dictc                 n    |D ]  }| j                   j                  |        t        t        |   |      S r   )rS   addr@   r9   update)rC   rZ   krD   s      r   r]   zStripeObject.updatev   s:     	(A  $$Q'	( \4/<<r!   c                 d    |d   dk(  s|| j                   v rt        t        |   ||      S || |<   y Nr   _)__dict__r@   r9   rW   rC   r^   r5   rD   s      r   rW   zStripeObject.__setattr__~   s9    ts{a4==0\4<QBBDGr!   c                 z    |d   dk(  rt        |      	 | |   S # t        $ r}t        |j                   d }~ww xY wr`   )AttributeErrorKeyErrorargs)rC   r^   errs      r   __getattr__zStripeObject.__getattr__   sE    ts{$Q''0Aw 0$chh//0s    	:5:c                 ^    |d   dk(  s|| j                   v rt        t        |   |      S | |= y r`   )rb   r@   r9   __delattr__rC   r^   rD   s     r   rk   zStripeObject.__delattr__   s2    ts{a4==0\4<Q??Gr!   r^   r5   c                     |dk(  r!t        d|dt        |       d|d|d	      t        | d      st               | _        | j                  j                  |       t        t        | #  ||       y )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().rS   )	
ValueErrorr'   r2   r)   rS   r\   r@   r9   __setitem__rc   s      r   rp   zStripeObject.__setitem__   sg    7
 c$iA	'  t./#&5D   #lD-a3r!   c                     	 t         t        |   |      S # t        $ rN}|| j                  v r9t        |d|ddj                  t        | j                                           |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, )r@   r9   __getitem__rf   rT   joinlistr*   )rC   r^   rh   rD   s      r   rr   zStripeObject.__getitem__   sn    	t8;; 	D*** !TYYtDIIK'89;  		s    	A-A	A((A-c                     t         t        |   |       t        | d      r+|| j                  v r| j                  j                  |       y y y )NrS   )r@   r9   __delitem__r2   rS   removerl   s     r   rv   zStripeObject.__delitem__   sI    lD-a0 4*+T5I5I0I  ''* 1J+r!   statec                 &    | j                  |       y r   )r]   )rC   rx   s     r   __setstate__zStripeObject.__setstate__   s    Er!   .c                     t        |       | j                  dd       | j                  | j                  | j                  ft        |       f}|S NrO   )typegetrL   rM   rN   r&   )rC   reduce_values     r   
__reduce__zStripeObject.__reduce__   sM    Jt$####	 J	
 r!   valuesr,   c                 j     | |j                  d      ||||      }|j                  |||||       |S )NrO   )rL   rM   rN   rP   )r~   refresh_from)clsr   r,   rM   rN   rP   instances          r   construct_fromzStripeObject.construct_from   sQ     JJt))'
 	))' 	 	
 r!   partialc                    |xs t        |dd       | _        |xs t        |dd       | _        |xs t        |dd       | _        |xs t        |dd       | _        |r| j
                  t        |      z
  | _        nXt        | j                               t        |      z
  }| j                  |z  | _        t               | _        | j                          | j                  t        |      z
  | _        |j                         D ]  \  }}	| j                  |      }
| j                  |      }|rN|	j                         D 	ci c]2  \  }}	||	d n't        t        t        j                   |	|||d |
            4 }}}	n<t        t"        t        t$        t           f   t        j                   |	|||d |
            }t&        t        | S  |        || _        y c c}	}w )NrL   rM   rN   rU   )getattrrL   rM   rN   rU   rS   r)   r*   rT   clearitems_get_inner_class_type _get_inner_class_is_beneath_dictr   r9   r   convert_to_stripe_objectr   r
   r@   rp   rK   )rC   r   rL   r   rM   rN   rP   removedr^   r5   inner_classis_dictobjrD   s                r   r   zStripeObject.refresh_from   s    B'&)T"B, 
$d1
 - 
$d1
 , 
w$d0
 #'#7#7#f+#ED $))+&V4G%)%;%;g%ED"#&5D JJL!%!7!7#f+!ELLN  	:DAq44Q7K;;A>G !"	 1 y $55#** '
 " ,\(::;11&&#
 ,1!S9A 	:D  =s   <7Gc                      y r   r   )r   s    r   api_basezStripeObject.api_base1  s    r!   method)r~   postdeleteurlheadersc                 6    t         j                  | ||||      S )N)r   r3   )r9   _request)rC   r   r   r3   r   s        r   requestzStripeObject.request5  s'     $$&#wv % 
 	
r!   method_url_idempotency_keyc	                    |d n
t        |      }t        j                  |d|      }t        j                  |d|      }t        j                  |d|      }t        j                  |d|      }t        j                  |d|      }|xs | j                  }|xs | j                  }|xs | j
                  }|xs | j                  }t        j                  || j                         ||      }	|8|i n|j                         }|j                  t        j                  |             |	j                  ||||      \  }
}t        j                  |
||||      S )NrL   r   rM   rN   r   r,   r   api_versionaccount)r&   r   read_special_variablerN   rM   rL   rJ   r   APIRequestorr   r(   r]   populate_headersr   r   )rC   r   r   rL   r   rM   rN   r   r3   	requestorresponses              r   r   zStripeObject._requestB  sR     T&\,,VYH44%
 33$n
 33$n
 ,,VYH'>4+>+>'>4+>+>)T\\0400!..]]_&"	
	 &#ObGNN400AB%--gtVWM',,g~~v
 	
r!   c                     || j                   }t        j                  | j                  | j	                         | j
                  | j                        }|j                  ||||      \  }}|S )Nr   )rJ   r   r   rL   r   rM   rN   request_stream)rC   r   r   r3   r   r   r   ra   s           r   r   zStripeObject.request_streamp  sg     >**F!..]]_++''	
	  ..vsFGL!r!   c                    t        |       j                  g}| j                  d      }t        |t              r|j                  |       t        | j                  d      t              r#|j                  d| j                  d             ddj                  |      dt        t        |             dt	        |       }|S )NrV   rO   zid=< z at z> JSON: )	r}   rE   r~   r%   r'   appendrs   hexrO   )rC   ident_partsobj_strunicode_reprs       r   __repr__zStripeObject.__repr__  s    Dz**+((8$gs#w'dhhtnc*$((4.:; HH[!4MI

 r!   c                 d    t        j                  | j                         dd| j                        S )NT   )	sort_keysindentr   )jsondumpsto_dict_recursiverA   rY   s    r   __str__zStripeObject.__str__  s.    zz""$$$	
 	
r!   c                     t        |       S r   )r&   rY   s    r   to_dictzStripeObject.to_dict  s    Dzr!   c                 r   dt         t        t        t        t        t
        f   f      dt         t        t        t
        f      fd}t        |       j                         D ci c]H  \  }}|t        |t              r*t        t        |t        t        t
           |                  n ||      J c}}S c c}}w )Nvaluer   c                 L    | y t        | t              r| j                         S | S r   )r%   r9   r   )r   s    r   maybe_to_dict_recursivez?StripeObject.to_dict_recursive.<locals>.maybe_to_dict_recursive  s*     }E<0..00r!   )r   r   r9   r	   r'   r   r&   r   r%   rt   mapr   r
   )rC   r   r,   r   s       r   r   zStripeObject.to_dict_recursive  s    	E,S#X">?@	d38n%	 #4j..0	
 U %& c14S	53IJK(/0
 	
 
s   "AB3c                     t        | d      S r|   )r   rY   s    r   	stripe_idzStripeObject.stripe_id  s    tT""r!   r   c                    i }| j                   xs
 t               }|xs | j                  xs i }| j                         D ]  \  }}|dk(  s|j	                  d      rt        |t        j                  j                        rBt        |d      r-|j                  |j                  |d             }|i k7  su|||<   {||v r t        ||j                  |d             ||<   |dk(  s|t        ||j                  |d             ||<    |S )NrO   ra   r/   additional_owners)rS   r)   rK   r   
startswithr%   stripeabstractAPIResourcer2   r/   r~   r   r7   )rC   r   r3   unsaved_keysr^   r5   childs          r   r/   zStripeObject.serialize  s    !#++4su3t~~3JJL 	FDAqDyALL-Av::;K(HLLD$9:B; %F1Il")!X\\!T-BCq	))am+Ax||At/DEq		F r!   c                     t        | j                  d      | j                  | j                  | j                        }| j
                  |_        | j                         D ]  \  }}t        t         |#  ||        |S )NrO   )rM   rN   )	r9   r~   rL   rM   rN   rJ   r   r@   rp   )rC   copiedr^   r5   rD   s       r   __copy__zStripeObject.__copy__  st    HHTNLL....	
 #'"7"7JJL 	:DAq ,3Aq9	:
 r!   memoc                     | j                         }||t        |       <   | j                         D ]#  \  }}t        t        |  |t        ||             % |S r   )r   rO   r   r@   r9   rp   r   )rC   r   r   r^   r5   rD   s        r   __deepcopy__zStripeObject.__deepcopy__  sW    RXJJL 	JDAq ,3Ax47HI	J
 r!   _inner_class_types_inner_class_dicts
field_namec                 8    | j                   j                  |      S r   )r   r~   rC   r   s     r   r   z"StripeObject._get_inner_class_type  s     &&**:66r!   c                     || j                   v S r   )r   r   s     r   r   z-StripeObject._get_inner_class_is_beneath_dict  s    T4444r!   )NNNNN)NNN)NFNNN)NN)NNNNNN)7rE   rF   rG   r   JSONEncoderrA   r	   r'   r   __annotations__r   r   rR   propertyrP   r   r]   r   rW   ri   rk   rp   rr   rv   rz   r   r   classmethodr   r   boolr   r   r   r   r   r   r   r   r   r   r   r   r/   r   intr   r   r   r   r   r
   r   r   rH   rI   s   @r   r9   r9   F   s   H$** H 38n$S#X''c]SM!SM! !!%(,(,26SM # !	
 !  / 4 #x7 # #
='#s("3 = = 		0	4S 4S 4T 4$S S  +S +T +$sCx. T E#s(O  
 )-(,26S#X c] !	
 !  / 
 6 "&"'(,(,26C S#XC  #C  $	C 
 !C  !C   /C  
C J #   ,0,0	
/0	
 	
 c3h(		

 $sCx.)	
 
	
" "&)-(,(,,0.2,
01,
 ,
 #	,

 "#,
 !,
 !,
 $sCx.),
 c*+,
 
,
d /3/3  c*+	
 '#s(+, 
&# "
 
c3h 
4S> 
$ #8C= # #(4S>": tCH~ 4$ ,	c3h 	D 	 EGc4+?&?!@AF.0c+077	$~&	'7
53 5r!   r9   ) r>   r   r(   r   typing_extensionsr   r   r   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   stripe.stripe_responser   r   r'   r   rV   r7   r9   r   r!   r   <module>r      s'      @ @     & G 
#s(^'/S#X'?	#s(^ 
 
'S#X7 

2
2'S#X7
2
2DI*.s)	#s(^"s54S> s5r!   