
    khd7                     n   U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZ d dl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 d dlZd dlZerd dlmZ d dlmZ d dl m!Z! ejD                  jG                  d	      Z$ ejJ                  d
      Z&ejN                  e(d<   erejR                  Z)n$ ed      Z*e+ddde,deee-      de.dee*ge*f   fdZ)d Z/d Z0d Z1d Z2d Z3d Z4d Z5 e6ed      rd Z7nd Z7d Z8edee,ef   ed    f   Z9e	 	 	 	 	 dBd!d"d#edee,ef   f   d$ee,   d%ee,   d&ee,   d'eee,ef      d(eed)      d*edd)fd+       Z:e	 	 	 	 	 dBd!d"d#ee9   d$ee,   d%ee,   d&ee,   d'eee,ef      d(eed)      d*eded)   fd,       Z:	 	 	 	 	 dBd!d"d#e9d$ee,   d%ee,   d&ee,   d'eee,ef      d(eed)      d*eded)ed)   f   fd-Z:eddd.d/d#edee,ef   f   d'eee,ef      d(eed)      d0d1d*ed2e;dd)fd3       Z<eddd.d/d#ee9   d'eee,ef      d(eed)      d0d1d*ed2e;ded)   fd4       Z<ddd.d/d#e9d'eee,ef      d(eed)      d0d1d*ed2e;ded)ed)   f   fd5Z<d6 Z=ed7e,dee,e,f   fd8       Z>edCd9       Z>d7ee,df   deee,e,f   df   fd:Z> ed;      Z?d< Z@d= ZAd>e,defd?ZB G d@ dAeC      ZDy)D    N)ApiMode)	parse_qsl
quote_plusurlparse)TypeTYPE_CHECKING)
CallableTypeVarUnionoverloadDictListcastAnyOptionalMappingStripeResponseStripeObject_APIRequestor
STRIPE_LOGstripelogger_T   category
stacklevel__msgr   r    returnc                4     dt         dt         f fd}|S )N__argr"   c                     	 _          S t         t              ri j                   j                  t
        j                  ut        j                        fd       }t        |       _        x _         |_          S t               r0t        j                          fd       }x _         |_         |S t        d       )Nc                     t        j                  dz          t        j                  ur | g|i |S s|s|rt	        | j
                   d       |       S )Nr   r   z() takes no arguments)warningswarnobject__new__	TypeError__name__)clsargskwargsr!   r   has_initoriginal_newr    s      L/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/stripe/_util.pyr*   z.deprecated.<locals>.decorator.<locals>.__new__A   sf    MMZ!^ $6>>9+CA$A&AA%46'3<<.8M(NOO+C00    c                  J    t        j                  dz           | i |S )Nr   r   )r'   r(   )r.   r/   r$   r!   r   r    s     r2   wrapperz.deprecated.<locals>.decorator.<locals>.wrapperS   s,    MMZ!^ !$1&11r3   zY@deprecated decorator with non-None category must be applied to a class or callable, not )__deprecated__
isinstancetyper*   __init__r)   	functoolswrapsstaticmethodcallabler+   )r$   r*   r5   r0   r1   r!   r   r    s   `  @@r2   	decoratorzdeprecated.<locals>.decorator9   s    ',$E4($}} >>@.
1 /
1 !-W 5@EE$w'=%'2 (2 AFE$w'=005y: r3   )r   )r!   r   r    r>   s   ``` r2   
deprecatedr?   3   s    '	R '	B '	R r3   c                  n    dt         j                  v xr" dt         j                  j                  dd      v S )NAPPENGINE_RUNTIMEDevSERVER_SOFTWARE )osenvironget r3   r2   is_appengine_devrI   e   s3    "**, "**..2; 2 r3   c                  d    t         j                  dv rt         j                  S t        dv rt        S y )Ndebuginfo)r   logr   rH   r3   r2   _console_log_levelrO   k   s+    zz&&zz	(	(r3   c                     t        t        dd| i|      }t               dk(  rt        |t        j
                         t        j                  |       y )NmessagerL   filerH   )logfmtdictrO   printsysstderrr   rL   rQ   paramsmsgs      r2   	log_debugr\   t   s>    
0g00
1Cw&c

#
LLr3   c                     t        t        dd| i|      }t               dv rt        |t        j
                         t        j                  |       y )NrQ   rK   rR   rH   )rT   rU   rO   rV   rW   rX   r   rM   rY   s      r2   log_infor^   {   s?    
0g00
1C00c

#
KKr3   c                      t         j                  y t        j                  dt         j                        } | y | j	                         d   S )Nzsk_(live|test)_r   )r   api_keyrematchgroups)rb   s    r2   _test_or_live_environmentrd      s=    ~~HH'8E}<<>!r3   c                 @    dj                  t               xs d|       S )Nz/https://dashboard.stripe.com/{env}/logs/{reqid}test)envreqid)formatrd   )
request_ids    r2   dashboard_linkrk      s(    <CC%'16 D  r3   c           
          d }dj                  t        | j                               D cg c]  \  }} |||       c}}      S c c}}w )Nc                    t        |d      r|j                  d      }t        |t              st        |      }t	        j
                  d|      rt        |      }t	        j
                  d|       rt        |       } dj                  | |      S )Ndecodezutf-8z\sz{key}={val}keyval)hasattrrn   r7   strra   searchreprri   ro   s     r2   fmtzlogfmt.<locals>.fmt   ss    3!**W%C
 #s#c(C99UC s)C99UC s)C###55r3    )joinsorteditems)propsrv   rp   rq   s       r2   rT   rT      sA    6" 886%++-3HI3HxsCSc]3HIJJIs   A
compare_digestc                 .    t        j                  | |      S N)hmacr|   )val1val2s     r2   secure_comparer      s    ""4..r3   c           	      V   t        |       t        |      k7  ryd}t        | t              r1t        |t              r!t        | |      D ]  \  }}|||z  z  } |dk(  S t        | |      D ];  \  }}|t	        t        t        |            t	        t        t        |            z  z  }= |dk(  S )a[  
        Returns True if the two strings are equal, False otherwise.
        The time taken is independent of the number of characters that match.
        For the sake of simplicity, this function executes in constant time
        only when the two strings have the same length. It short-circuits when
        they have different lengths.
        Fr   )lenr7   byteszipordr   rs   )r   r   resultxys        r2   r   r      s     t9D	!dE"z$'>D$1!a% (
 { D$1#d3l+c$sA,.??? ({r3   c                 ,    | dk(  rddl m} |S ddl m} |S )NV2r   )V2_OBJECT_CLASSES)OBJECT_CLASSES)stripe._object_classesr   r   )api_moder   r   s      r2   get_object_classesr      s    4<  5r3   r   RespV1)r   respr`   stripe_versionstripe_accountrZ   klass_r   r   c                     y r~   rH   r   r`   r   r   rZ   r   r   s          r2   convert_to_stripe_objectr      s     r3   c                     y r~   rH   r   s          r2   r   r      s     r3   c          
      T    ddl m} t        | || |j                  |||      |      S )Nr   r   )r`   r   r   )r   rZ   r   	requestorr   )stripe._api_requestorr   _convert_to_stripe_object_global_with_options)r   r`   r   r   rZ   r   r   r   s           r2   r   r      s;     4$4-44))

 
 
r3   F)rZ   r   is_v2_deleted_objectr   r   r   c                      y r~   rH   r   rZ   r   r   r   r   s         r2   r   r     s     r3   c                      y r~   rH   r   s         r2   r   r     s     r3   c           	      t   d }ddl m} ddlm} t	        | |      r| }t        t        |j                        } t	        | t              r'| D 	cg c]  }	t        t        d|	      |||       c}	S t	        | t              r*t	        | |      s| j                         } | j                  d      }
t	        |
t              rx|r	ddlm} |}n|dk(  r>|
d	k(  r9dd
lm} | j                  dd      }|j                  |t$        j                        }nTt'        |      j                  |
t$        j                        }n*d| v rd| v rt$        j(                  j*                  }n||}n|}|j-                  | |||      }|1t/        |d      r%t1        |d      dk(  st1        |d      dk(  r||_        |S t        d|       S c c}	w )Nr   r   r   z%Union[StripeResponse, Dict[str, Any]])r   r   r   r   r)   )DeletedObjectr   zv2.core.event)V2_EVENT_CLASS_LOOKUPr8   rD   datanext_page_url)valueslast_responser   r   listsearch_resultr   )stripe._stripe_responser   stripe._stripe_objectr   r7   r   r   r   r   r   rU   copyrG   rs   stripe.v2._deleted_objectr   stripe.events._event_classesr   r   r   v2
ListObject_construct_fromrr   getattr_retrieve_params)r   rZ   r   r   r   r   stripe_responser   r   i
klass_namer   klassr   
event_nameobjs                   r2   r   r     s    O 72$'D/../$ 
  &A1E#!	 
 	
 
D$	
4(Fyy{XXh'
j#&#C%T!jO&CN!XXfb1
-11 3 3 +8488 3 3 t^4 7II((EE E##)	 $ 
 X&h'61C*o= $*C 
ND)){
s    F5c                     t        | t              r| D cg c]  }t        |       c}S t        | t              r-| j	                         D ci c]  \  }}|t        |       c}}S | S c c}w c c}}w )zConverts a StripeObject back to a regular dict.

    Nested StripeObjects are also converted back to regular dicts.

    :param obj: The StripeObject to convert.

    :returns: The StripeObject as a dict.
    )r7   r   convert_to_dictrU   rz   )r   r   kvs       r2   r   r   t  sl     #t,/0Cq"C00 
C	25))+>+$!Q?1%%+>>
 1
 ?s   A)A.idempotency_keyc                      y r~   rH   r   s    r2   populate_headersr     s     r3   c                      y r~   rH   r   s    r2   r   r     s    58r3   c                     | d| iS y )NzIdempotency-KeyrH   r   s    r2   r   r     s     "!?33r3   Tc                 H    | j                         }|j                  |       |S r~   )r   update)r   r   zs      r2   merge_dictsr     s    	AHHQKHr3   c                     t        |       }|S r~   )r   )idquotedIds     r2   sanitize_idr     s    "~HOr3   urlc                 (    | j                  d      ryy)Nz/v2r   r   )
startswith)r   s    r2   get_api_moder     s    
~~e r3   c                   X    e Zd ZU d Z ed      Zeed<   dedefdZd	de	e
e      fdZy)
class_method_variantc                     || _         y r~   )class_method_name)selfr   s     r2   r9   zclass_method_variant.__init__  s
    !2r3   r   methodr"   c                 0    || _         t        t        |       S r~   )r   r   r   )r   r   s     r2   __call__zclass_method_variant.__call__  s    At}r3   Nobjtypec                 ^     t        j                   j                         fd       }|S )Nc                       j                   g| i |S t        |       dkD  r-+t        | d         r j                   | d   g| dd  i |S t        j                        } || i |S )Nr   r   )r   r   r7   r   r   )r.   r/   class_methodr   r   r   s      r2   _wrapperz.class_method_variant.__get__.<locals>._wrapper  s     #t{{38888D	A'tAw0
 #t{{47@T!"X@@@  'w0F0FG#T4V44r3   )r:   r;   r   )r   r   r   r   s   ``` r2   __get__zclass_method_variant.__get__  s)    		%	5 
&	5& r3   r~   )r,   
__module____qualname__r9   r
   r   r   __annotations__r   r   r   r   rH   r3   r2   r   r     s?    3 	AKq Q HT#Y$7 r3   r   )NNNNN)r   Nr"   N)Er:   r   loggingrW   rE   ra   r'   stripe._api_moder   urllib.parser   r   r   typing_extensionsr   r   typingr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rF   rG   r   	getLoggerr   Loggerr   r?   r   DeprecationWarningrs   WarningintrI   rO   r\   r^   rd   rk   rT   rr   r   r   r   r   boolr   r   r   r   r   r   r   r)   r   rH   r3   r2   <module>r      sq      
 	 	  $ 8 8 1    623ZZ^^L)
***84 4"--J	B -?	// 4=)/ 	/
 
2$(	/dK, 4!"/
(	 tCH~tF|;< 
 "$($(*.-1	 	
 $sCx.0
1	c]	 SM	 SM		
 WS#X&'	 T.)*	 	 	 
	 
 "$($(*.-1	 	
t*	c]	 SM	 SM		
 WS#X&'	 T.)*	 	 
.	 
	 "$($(*.-1 
c] SM SM	
 WS#X&' T.)*  >4//02 
 +/-1 "'
 $sCx.0
1 WS#X&' T.)*	
     
 
 +/-1 "'
t* WS#X&' T.)*	
    
. 
 +/-1 "'U*
U* WS#X&'U* T.)*	U*
 U* U* U* >4//0U*p( 
	#s(^ 

 
 8 
 839%
4S>4  CL
c g !6 !r3   