
    h{M              	          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(y)    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                      y N r   r   s     U/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/stripe/_stripe_object.py_compute_diffr$   &   s         c                      y r    r!   r"   s     r#   r$   r$   ,   s     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$   2   sy     '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hasattrr3   r+   r$   )r1   r   paramsivprevious_items         r#   _serialize_listr;   ?   s     KRE~2HF% 1'*8}q'8d1k"[[7F3q6N*1m<F3q6N ! Mr%   c                   8    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&jN                  d1      	 dTd2d3d4e(d5   d6ede
eeef      d7e)dd f
d8       Z*	 	 dUd4e(d5   d6ede
eeef      d9e
e+e      d7e)dd fd:Z,	 	 dUd4e(d5   d6ede
eeef      d9e
e+e      d7e)dd fd;Z-	 dTd2d3d4ed6ede
eeef      d7e)de.f
d<Z/	 dTd2d3d4ed6ede
eeef      d7e)de0f
d=Z1defd>Z2defd?Z3 e&jN                  d@      deeef   fdA       Z4deeef   fdBZ5 e&jN                  dC      deeef   fdD       Z6e e&jN                  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   s6    !X../'**66EaHHr%   )__name__
__module____qualname__r   rE   __classcell__rG   s   @r#   rD   r?   Q   s    	IS 	IS 	I 	Ir%   rD   _retrieve_params	_previousN)
_requestoridapi_keystripe_versionstripe_accountlast_responserO   r   r7   c                    t         t        |           t               | _        t               | _        || _        || _        d | _        |"t        j                  j                  |||      n|| _        |r|| d<   y y )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__Z   s     	lD*,),+.5+ & !   55-- 6   	 DJ 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                 n    |D ]  }| j                   j                  |        t        t        |   |      S r    )rX   addrC   r=   update)rF   rc   krG   s      r#   rf   zStripeObject.update   s7     A  $$Q'  \4/<<r%   c                     |dv r#| j                   j                  ||i      | _         y |d   dk(  s|| j                  v rt        t        |   ||      S || |<   y )N>   rQ   rS   rR   r   _)rO   _replace_options__dict__rC   r=   __setattr__rF   rg   r9   rG   s      r#   rl   zStripeObject.__setattr__   s_    CC"&//"B"BAq6"Jts{a4==0\4<QBBDGr%   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__   se    ts{$Q''9.....q1AAw 9$chh/S89s   !7 	A AAc                 ^    |d   dk(  s|| j                   v rt        t        |   |      S | |= y ro   )rk   rC   r=   __delattr__rF   rg   rG   s     r#   rw   zStripeObject.__delattr__   s2    ts{a4==0\4<Q??Gr%   rg   r9   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().rX   )	
ValueErrorr+   r6   r-   rX   re   rC   r=   __setitem__rm   s      r#   r|   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, )rC   r=   __getitem__rr   rY   joinlistr.   )rF   rg   rt   rG   s      r#   r~   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 )NrX   )rC   r=   __delitem__r6   rX   removerx   s     r#   r   zStripeObject.__delitem__   sI    lD-a0 4*+T5I5I0I  ''* 1J+r%   statec                 &    | j                  |       y r    )rf   )rF   r   s     r#   __setstate__zStripeObject.__setstate__   s    Er%   .c                     t        |       | j                  dd       | j                  | j                  | j                  ft        |       f}|S NrP   )typegetrQ   rR   rS   r*   )rF   reduce_values     r#   
__reduce__zStripeObject.__reduce__   sM    Jt$####	 J	
 r%   V1)api_modevaluesr0   r   c                l    | j                  |t        j                  j                  |||      ||      S )NrV   )r   	requestorr   rT   )_construct_fromr[   r   r\   )clsr   r0   rR   rS   rT   r   s          r#   construct_fromzStripeObject.construct_from   sJ     ""**??-- @ 
 ' # 	
 		
r%   )rT   r   c                d     | |j                  d      ||      }|j                  ||||       |S )NrP   )rT   rO   )r   rT   r   r   )r   _refresh_from)r   r   rT   r   r   instances         r#   r   zStripeObject._construct_from	  sH     JJt' 

 	'	 	 	
 r%   Fpartialc                j    | j                  |||| j                  j                  |||d      |       y )NrV   )r   r   rT   r   r   )r   rO   rj   )rF   r   rQ   r   rR   rS   rT   r   s           r#   refresh_fromzStripeObject.refresh_from  sE     	'oo66&&4&4  	 	
r%   )r   rT   r   c                |   |xs | j                   | _         |xs t        |dd       | _        |r| j                  t	        |      z
  | _        nXt	        | j                               t	        |      z
  }| j                  |z  | _        t	               | _        | j                          | j                  t	        |      z
  | _        |j                         D ]  \  }}| j                  |      }	| j                  |      }
|
rX|j                         D ci c]<  \  }}||d n1t        t        t        j                  |d |	| j                   |            > }}}nFt        t        t        t         t           f   t        j                  |d |	| j                   |            }t"        t        | K  |        || _        y c c}}w )NrZ   )respr7   klass_r   r   )rO   getattrrZ   rX   r-   r.   rY   clearitems_get_inner_class_type _get_inner_class_is_beneath_dictr   r=   r   _convert_to_stripe_objectr   r
   rC   r|   rN   )rF   r   r   rT   r   r   removedrg   r9   inner_classis_dictobjrG   s               r#   r   zStripeObject._refresh_from8  s    $6t+ 
w$d0
 #'#7#7#f+#ED $))+&V4G%)%;%;g%ED"#&5D JJL!%!7!7#f+!ELLNDAq44Q7K;;A>G !"	 !*1 y $77!"#'#.&*oo%-	 !*    ,\(::;33#*"&//!)	 ,1!S9= #@  9s   AF8z:This will be removed in a future version of stripe-python.api)base_addressmethod)r   postdeleteurlr   c                6    t         j                  | ||||      S )N)r7   r   )r=   _request)rF   r   r   r7   r   s        r#   requestzStripeObject.requestu  s+     $$% % 
 	
r%   usagec                |    || j                   }t        |      \  }}| j                  j                  ||||||      S N)r7   optionsr   r   )rM   r   rO   r   rF   r   r   r7   r   r   request_optionsrequest_paramss           r#   r   zStripeObject._request  sQ     >**F*CF*K'&&!#% ' 
 	
r%   c                   K   || j                   }t        |      \  }}| j                  j                  ||||||       d {   S 7 wr   )rM   r   rO   request_asyncr   s           r#   _request_asynczStripeObject._request_async  s_      >**F*CF*K'__22!#% 3 
 
 	
 
s   AA
AA
c                z    || j                   }t        |      \  }}| j                  j                  |||||      S N)r7   r   r   )rM   r   rO   request_streamrF   r   r   r7   r   r   r   s          r#   _request_streamzStripeObject._request_stream  sN     >**F*CF*K'--!#% . 
 	
r%   c                   K   || j                   }t        |      \  }}| j                  j                  |||||       d {   S 7 wr   )rM   r   rO   request_stream_asyncr   s          r#   _request_stream_asyncz"StripeObject._request_stream_async  s\      >**F*CF*K'__99!#% : 
 
 	
 
s   A A	AA	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 )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    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_recursiverD   r^   s    r#   __str__zStripeObject.__str__  s.    zz##%%%	
 	
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     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)   r=   r   )r   s    r#   maybe_to_dict_recursivez@StripeObject._to_dict_recursive.<locals>.maybe_to_dict_recursive  s*     }E<0//11r%   )r   r   r=   r	   r+   r   r*   r   r)   r   mapr   r
   )rF   r   r0   r   s       r#   r   zStripeObject._to_dict_recursive  s    	E,S#X">?@	d38n%	 #4j..0	
 1
U %& c14S	53IJK(/0 1	
 	
 
s   "AB3z^For internal stripe-python use only. The public interface will be removed in a future version.c                 "    | j                         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                   xs
 t               }|xs | j                  xs i }| j                         D ]  \  }}|dk(  s|j	                  d      rt        |t        j                        r8t        |d      r-|j                  |j                  |d             }|i k7  sk|||<   q||v r t        ||j                  |d             ||<   |dk(  s|t        ||j                  |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     "$++4su3t~~3JJLDAqDyALL-Av112K(HLLD$9:B; %F1Il")!X\\!T-BCq	))am+Ax||At/DEq	 ! r%   c                     t        | j                  d      | j                  | 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__8  so    HHTNLL....	
 #'"7"7JJLDAq ,3Aq9 !
 r%   memoc                     | j                         }||t        |       <   | j                         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__N  sP    RXJJLDAq ,3Ax47HI !
 r%   rq   _inner_class_types_inner_class_dicts
field_namec                 8    | j                   j                  |      S r    )r   r   rF   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_dictc  s    T4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4++ I c3h''S)** !!%(,(,26  15 SM  #  !	 
 !   /  _-   D ' ' . . . . #x7 # #
="38,=	= 				9	4S 4S 4T 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	"
 "
 

6 /3%)
/0
 
 c*+	

 S	"
 "
 

6 /3	
 %*

 
 c*+	
 "
 

0 /3	
 %*

 
 c*+	
 "
 
#
(# "
 
 UOc3h 
DcN 
$ Uh)4S> )) Uh#8C= # # c!23	c3h8,	c3h 	N 	 35xS#X/4DFc4+?&?!@AF.0c+077	$~&	'7
53 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      sB      @ @      
 , = $ ,$ 
#s(^'/S#X'?	#s(^ 

 
'S#X7 


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