
    <@g5                     \   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Zd dlm	Z	 d dl
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 Z8d Z9ed ee,ef   ed!   f   Z:e	 	 	 	 	 d@d"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	 	 	 	 	 d@d"d#d$ee:   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;	 	 	 	 	 d@d"d#d$e:d%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$ed ee,ef   f   d(eee,ef      d)eed*      d0d1d+e	dd*fd2       Z<eddd/d$ee:   d(eee,ef      d)eed*      d0d1d+e	ded*   fd3       Z<ddd/d$e:d(eee,ef      d)eed*      d0d1d+e	ded*ed*   f   fd4Z<d5 Z=ed6e,dee,e,f   fd7       Z>edAd8       Z>d6ee,df   deee,e,f   df   fd9Z> ed:      Z?d; Z@d< ZAd= ZB G d> d?eC      ZDy)B    N)ApiMode)	parse_qsl
quote_plus)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      K/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/stripe/_util.pyr)   z.deprecated.<locals>.decorator.<locals>.__new__B   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     r1   wrapperz.deprecated.<locals>.decorator.<locals>.wrapperT   s,    MMZ!^ !$1&11r2   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)   r4   r/   r0   r    r   r   s   `  @@r1   	decoratorzdeprecated.<locals>.decorator:   s    ',$E4($}} >>@.
1 /
1 !-W 5@EE$w'=%'2 (2 AFE$w'=005y: r2   )r   )r    r   r   r=   s   ``` r1   
deprecatedr>   4   s    '	R '	B '	R r2   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 r2   r1   is_appengine_devrH   f   s3    "**, "**..2; 2 r2   c                  d    t         j                  dv rt         j                  S t        dv rt        S y )Ndebuginfo)r   logr   rG   r2   r1   _console_log_levelrN   l   s+    zz&&zz	(	(r2   c                     t        t        dd| i|      }t               dk(  rt        |t        j
                         t        j                  |       y )NmessagerK   filerG   )logfmtdictrN   printsysstderrr   rK   rP   paramsmsgs      r1   	log_debugr[   u   s>    
0g00
1Cw&c

#
LLr2   c                     t        t        dd| i|      }t               dv rt        |t        j
                         t        j                  |       y )NrP   rJ   rQ   rG   )rS   rT   rN   rU   rV   rW   r   rL   rX   s      r1   log_infor]   |   s?    
0g00
1C00c

#
KKr2   c                      t         j                  y t        j                  dt         j                        } | y | j	                         d   S )Nzsk_(live|test)_r   )r   api_keyrematchgroups)ra   s    r1   _test_or_live_environmentrc      s=    ~~HH'8E}<<>!r2   c                 @    dj                  t               xs d|       S )Nz/https://dashboard.stripe.com/{env}/logs/{reqid}test)envreqid)formatrc   )
request_ids    r1   dashboard_linkrj      s(    <CC%'16 D  r2   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)hasattrrm   r6   strr`   searchreprrh   rn   s     r1   fmtzlogfmt.<locals>.fmt   ss    3!**W%C
 #s#c(C99UC s)C99UC s)C###55r2    )joinsorteditems)propsru   ro   rp   s       r1   rS   rS      s;    6" 886%++-3HIxsCSc]IJJIs   A
compare_digestc                 .    t        j                  | |      S N)hmacr{   )val1val2s     r1   secure_comparer      s    ""4..r2   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   )lenr6   byteszipordr   rr   )r   r   resultxys        r1   r   r      s     t9D	!dE"z$'>D$  1!a% 
 { D$ @1#d3l+c$sA,.???@{r2   c                      ddl m}  | S )Nr   THIN_EVENT_CLASSES)stripe.events._event_classesr   r   s    r1   get_thin_event_classesr      s    ?r2   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      r1   get_object_classesr      s    4<  5r2   r   RespV1)r   respr_   stripe_versionstripe_accountrY   klass_r   r   c                     y r}   rG   r   r_   r   r   rY   r   r   s          r1   convert_to_stripe_objectr      s     r2   c                     y r}   rG   r   s          r1   r   r      s     r2   c          
      T    ddl m} t        | || |j                  |||      |      S )Nr   r   )r_   r   r   r   rY   r   	requestorr   )stripe._api_requestorr   _convert_to_stripe_object_global_with_options)r   r_   r   r   rY   r   r   r   s           r1   r   r      s;     4$4-44))

 
 
r2   )rY   r   r   r   c                      y r}   rG   r   s        r1   r   r     s     r2   c                      y r}   rG   r   s        r1   r   r     s     r2   c           	      b   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              ro|dk(  r@|	dk(  r;| j                  d	d
      }
t               j                  |
t        j                        }nTt!        |      j                  |	t        j                        }n*d| v rd| v rt        j"                  j$                  }n||}n|}|j'                  | |||      }|1t)        |d      r%t+        |d      dk(  st+        |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(   r   zv2.core.eventr7   rC   datanext_page_url)valueslast_responser   r   listsearch_resultr   )stripe._stripe_responser   stripe._stripe_objectr   r6   r   r   r   r   r   rT   copyrF   rr   r   r   r   v2
ListObject_construct_fromrq   getattr_retrieve_params)r   rY   r   r   r   stripe_responser   r   i
klass_name
event_nameklassobjs                r1   r   r   !  s    O 72$'D/../$ 
  &A1E#!	
 	
 
D$	
4(Fyy{XXh'
j#&4J/$A!XXfb1
.044 3 3 +8488 3 3 t^4 7II((EE E##)	 $ 
 X&h'61C*o= $*C 
ND))m
s    F,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.
    )r6   r   convert_to_dictrT   ry   )r   r   kvs       r1   r   r   p  sd     #t,/0q"00 
C	25))+>$!Q?1%%>>
 1
 ?s   A)A.idempotency_keyc                      y r}   rG   r   s    r1   populate_headersr     s     r2   c                      y r}   rG   r   s    r1   r   r     s    58r2   c                     | d| iS y )NzIdempotency-KeyrG   r   s    r1   r   r     s     "!?33r2   Tc                 H    | j                         }|j                  |       |S r}   )r   update)r   r   zs      r1   merge_dictsr     s    	AHHQKHr2   c                     t        |       }|S r}   )r   )idquotedIds     r1   sanitize_idr     s    "~HOr2   c                 (    | j                  d      ryy)Nz/v2r   r   )
startswith)urls    r1   get_api_moder     s    
~~er2   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     r1   r8   zclass_method_variant.__init__  s
    !2r2   r   methodr!   c                 0    || _         t        t        |       S r}   )r   r   r   )r   r   s     r1   __call__zclass_method_variant.__call__  s    At}r2   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   r6   r   r   )r-   r.   class_methodr   r   r   s      r1   _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4r2   )r9   r:   r   )r   r   r   r   s   ``` r1   __get__zclass_method_variant.__get__  s)    		%	5 
&	5& r2   r}   )r+   
__module____qualname__r8   r	   r   r   __annotations__r   r   r   r   rG   r2   r1   r   r     s?    3 	AKq Q HT#Y$7 r2   r   )NNNNN)r   Nr!   N)Er9   r~   iologgingrV   rD   r`   r&   stripe._api_moder   urllib.parser   r   typing_extensionsr   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE   rF   r   	getLoggerr   Loggerr   r>   r   DeprecationWarningrr   WarningintrH   rN   r[   r]   rc   rj   rS   rq   r   r   r   r   r   r   r   r   r   r   r   r   r(   r   rG   r2   r1   <module>r      s:     	  
 	 	  $ . 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	L*
L* WS#X&'L* T.)*	L*
 L* L* >4//0L*^( 
	#s(^ 

 
 8 
 839%
4S>4  CL
!6 !r2   