
     h_4                     z    d dl mZmZmZ d dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
mZ d Zd Z G d de          ZdS )	    )absolute_importdivisionprint_functionN)deepcopy)api_requestorutilsixc                    t          | t                    re|pi }|                                 }t          |                                          t          |                                          z
  D ]}d||<   |S | | ndS )N )
isinstancedictcopysetkeys)currentpreviousdiffkeys       P/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/stripe/stripe_object.py_compute_diffr      s}    '4   >r||~~x}}''#diikk*:*:: 	 	CDII)77r1    c                 *   | 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hasattrr   strr   )arrayr   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                   j    e Zd Z G d dej                  Z	 	 	 	 	 d fd	Zed             Z fdZ	 fdZ
d Z fd	Z fd
Z fdZ fdZd Zd Ze	 	 	 dd            Z	 	 	 	 	 d  fd	Zed             Zd!dZ	 	 	 	 	 	 d"dZd!dZd Zd Zd Zd Zed             Zd Z fdZ fdZ  xZ!S )#StripeObjectc                        e Zd Z fdZ xZS )StripeObject.ReprJSONEncoderc                     t          |t          j                  rt          j        |          S t	          t
          j        |                               |          S N)r   datetimer   _encode_datetimesuperr%   ReprJSONEncoderdefault)selfobj	__class__s     r   r.   z$StripeObject.ReprJSONEncoder.default&   sJ    #x011 ;$5c:::5t<<DDSIIIr   )__name__
__module____qualname__r.   __classcell__r1   s   @r   r-   r'   %   sA        	J 	J 	J 	J 	J 	J 	J 	J 	Jr   r-   Nc                    t          t          |                                            t                      | _        t                      | _        || _        || _        d | _        t          
                    | d|           t          
                    | d|           t          
                    | d|           |r|| d<   d S d S )Napi_keystripe_versionstripe_accountid)r,   r%   __init__r   _unsaved_values_transient_values_last_response_retrieve_params	_previousobject__setattr__)r/   r;   r8   r9   r:   last_responser   r1   s          r   r<   zStripeObject.__init__+   s     	lD!!**,,,"uu!$+ &4G4444!1>BBB4!1>BBB 	DJJJ	 	r   c                     | j         S r)   )r?   r/   s    r   rD   zStripeObject.last_responseD   s    ""r   c                     |D ]}| j                             |           t          t          |                               |          S r)   )r=   addr,   r%   update)r/   update_dictkr1   s      r   rI   zStripeObject.updateH   sJ     	( 	(A $$Q''''\4((//<<<r   c                     |d         dk    s	|| j         v r)t          t          |                               ||          S || |<   d S Nr   _)__dict__r,   r%   rC   r/   rK   r!   r1   s      r   rC   zStripeObject.__setattr__N   sJ    Q43;;!t},,t,,88A>>>Qtr   c                     |d         dk    rt          |          	 | |         S # t          $ r}t          |j         d }~ww xY wrM   )AttributeErrorKeyErrorargs)r/   rK   errs      r   __getattr__zStripeObject.__getattr__U   sW    Q43;; ###	,7N 	, 	, 	, #(++	,s   % 
A=Ac                     |d         dk    s	|| j         v r(t          t          |                               |          S | |= d S rM   )rO   r,   r%   __delattr__r/   rK   r1   s     r   rX   zStripeObject.__delattr__^   sE    Q43;;!t},,t,,88;;;Qr   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().r=   )	
ValueErrorr   r   r   r=   rH   r,   r%   __setitem__rP   s      r   r]   zStripeObject.__setitem__d   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, )r,   r%   __getitem__rS   r>   joinlistr   )r/   rK   rU   r1   s      r   r_   zStripeObject.__getitem__v   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 )Nr=   )r,   r%   __delitem__r   r=   removerY   s     r   rc   zStripeObject.__delitem__   sp    lD!!--a000 4*++ 	+T5I0I0I ''*****	+ 	+0I0Ir   c                 0    |                      |           d S r)   )rI   )r/   states     r   __setstate__zStripeObject.__setstate__   s    Er   c                     t          |           |                     dd           | j        | j        | j        ft          |           f}|S )Nr;   )typegetr8   r9   r:   r   )r/   reduce_values     r   
__reduce__zStripeObject.__reduce__   sL    JJt$$##	 JJ	
 r   c                      | |                     d          ||||          }|                    |||||           |S )Nr;   )r8   r9   r:   rD   )rj   refresh_from)clsvaluesr   r9   r:   rD   instances          r   construct_fromzStripeObject.construct_from   sj     3JJt))'
 
 
 	))' 	 	
 	
 	
 r   Fc           
         |pt          |dd           | _        |pt          |dd           | _        |pt          |dd           | _        |pt          |dd           | _        |r| j        t          |          z
  | _        ngt          |                                           t          |          z
  }| j        |z  | _        t                      | _        | 	                                 | j        t          |          z
  | _        t          j        |          D ]C\  }}	t          t          |                               |t          j        |	|||                     D|| _        d S )Nr8   r9   r:   r?   )getattrr8   r9   r:   r?   r=   r   r   r>   clearr	   	iteritemsr,   r%   r]   r   convert_to_stripe_objectrA   )r/   rp   r8   partialr9   r:   rD   removedrK   r!   r1   s             r   rn   zStripeObject.refresh_from   ss    B'&)T"B"B, 
$d1
 1
 - 
$d1
 1
 , 
w$d0
 0
  	#'#7#f++#ED  $))++&&V4G%)%;g%ED"#&55D JJLLL!%!7#f++!EM&)) 	 	DAq,%%11-w      r   c                     d S r)    )ro   s    r   api_basezStripeObject.api_base   s    tr   c                 @    t                               | ||||          S )N)headersr   )r%   _request)r/   methodurlr   r~   s        r   requestzStripeObject.request   s*    $$&#wv % 
 
 	
r   c	                    |d n|                                 }t          j        |d|          }t          j        |d|          }t          j        |d|          }t          j        |d|          }t          j        |d|          }|p| j        }|p| j        }|p| j        }|p| j        }t          j        || 	                                ||          }	|?|i n|                                 }|
                    t          j        |                     |	                    ||||          \  }
}t          j        |
||||          S )Nr8   idempotency_keyr9   r:   r~   r   r|   api_versionaccount)r   r   read_special_variabler:   r9   r8   r@   r   APIRequestorr|   rI   populate_headersr   rw   )r/   method_url_r8   r   r9   r:   r~   r   	requestorresponses              r   r   zStripeObject._request   sk     V[[]],VYHH4%
 
 3$n
 
 3$n
 
 ,VYHH'>4+>'>4+>)T\040!.]]__&"	
 
 
	 &#ObbGNN40AABBB%--gtVWMM',g~~v
 
 	
r   c                     || j         }t          j        | j        |                                 | j        | j                  }|                    ||||          \  }}|S )Nr   )r@   r   r   r8   r|   r9   r:   request_stream)r/   r   r   r   r~   r   r   rN   s           r   r   zStripeObject.request_stream   sf    >*F!.]]__+'	
 
 
	  ..vsFGLL!r   c                 V   t          |           j        g}t          |                     d          t          j                  r(|                    |                     d                     t          |                     d          t          j                  r+|                    d|                     d                     dd                    |          dt          t          |                     dt          |           }t          j        r|                    d          S |S )	NrB   r;   zid=< z at z> JSON: zutf-8)ri   r2   r   rj   r	   string_typesappendr`   hexr;   r   PY2encode)r/   ident_partsunicode_reprs      r   __repr__zStripeObject.__repr__-  s    Dzz*+dhhx((#*:;; 	3txx11222dhhtnnc&677 	<$((4...:;;; HH[!!!!4MMMMIII
 7 	 &&w///r   c                 `    t          j        |                                 dd| j                  S )NT   )	sort_keysindentro   )jsondumpsto_dict_recursiver-   rF   s    r   __str__zStripeObject.__str__A  s6    z""$$$	
 
 
 	
r   c                      t          |           S r)   )r   rF   s    r   to_dictzStripeObject.to_dictI  s    Dzzr   c                 d    d fdt          j        t          |                     D             S )Nc                 `    | d S t          | t                    r|                                 S | S r)   )r   r%   r   )values    r   maybe_to_dict_recursivez?StripeObject.to_dict_recursive.<locals>.maybe_to_dict_recursiveM  s5    }tE<00 ..000r   c           	          i | ]C\  }}|t          |t                    rt          t          |                    n
 |          DS r{   )r   ra   map).0r   r   r   s      r   
<dictcomp>z2StripeObject.to_dict_recursive.<locals>.<dictcomp>U  sg     
 
 
 U %&&0c1599:::((//
 
 
r   )r	   rv   r   )r/   r   s    @r   r   zStripeObject.to_dict_recursiveL  sO    	 	 	
 
 
 
 "mDJJ77	
 
 
 	
r   c                     | j         S r)   )r;   rF   s    r   	stripe_idzStripeObject.stripe_id\  s	    wr   c                 j   i }| j         pt                      }|p| j        pi }t          j        |           D ]\  }}|dk    s*t          |t                    r|                    d          r6t          |t          j	        j
        j                  r[t          |d          r5|                    |                    |d                     }|i k    r|||<   ||v r(t          ||                    |d                     ||<   |dk    r)|'t!          ||                    |d                     ||<   |S )Nr;   rN   r   additional_owners)r=   r   rA   r	   rv   r   r   
startswithstripeapi_resourcesabstractAPIResourcer   r   rj   r   r#   )r/   r   r   unsaved_keysrK   r!   childs          r   r   zStripeObject.serialize`  s;   +4suu3t~3M$'' 	F 	FDAqDyyZ3//yALL4E4EyAv3<HII 	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        |_        t          j        |           D ].\  }}t          t           |          	                    ||           /|S )Nr;   )r9   r:   )
r%   rj   r8   r9   r:   r@   r	   rv   r,   r]   )r/   copiedrK   r!   r1   s       r   __copy__zStripeObject.__copy__z  s    HHTNNL..	
 
 
 #'"7M$'' 	: 	:DAq ,''33Aq9999r   c                     |                                  }||t          |           <   t          j        |           D ]<\  }}t	          t
          |                              |t          ||                     =|S r)   )r   r;   r	   rv   r,   r%   r]   r   )r/   memor   rK   r!   r1   s        r   __deepcopy__zStripeObject.__deepcopy__  sr    RXXM$'' 	J 	JDAq ,''33Ax47H7HIIIIr   )NNNNN)NNN)NFNNN)NN)NNNNNN)"r2   r3   r4   r   JSONEncoderr-   r<   propertyrD   rI   rC   rV   rX   r]   r_   rc   rg   rl   classmethodrr   rn   r|   r   r   r   r   r   r   r   r   r   r   r   r5   r6   s   @r   r%   r%   $   s       J J J J J$* J J J      2 # # X#= = = = =    , , ,    4 4 4 4 4$     + + + + +     
    [6 )  )  )  )  )  ) V   [
 
 
 
 ,
 ,
 ,
 ,
\        (
 
 
  
 
 
    X  4    ,	 	 	 	 	 	 	 	 	r   r%   )
__future__r   r   r   r*   r   r   r   r   r   r   r	   r   r#   r   r%   r{   r   r   <module>r      s    @ @ @ @ @ @ @ @ @ @          + + + + + + + + + +2 2 2  u u u u u4 u u u u ur   