
    Ai5                     `   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
 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j@                  jC                  d	      Z" ejF                  d
      Z$ejJ                  e&d<   erejN                  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 Z.d Z/d Z0d Z1d Z2d Z3 e4ed      rd Z5nd Z5edee*ef   ed   f   Z6e	 	 	 	 	 dAd 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*       Z7e	 	 	 	 	 dAd d!d"ee6   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+       Z7	 	 	 	 	 dAd d!d"e6d#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,Z7eddd-d.d"edee*ef   f   d&eee*ef      d'eed(      d/d0d)ed1e8dd(fd2       Z9eddd-d.d"ee6   d&eee*ef      d'eed(      d/d0d)ed1e8ded(   fd3       Z9ddd-d.d"e6d&eee*ef      d'eed(      d/d0d)ed1e8ded(ed(   f   fd4Z9d5 Z:ed6e*dee*e*f   fd7       Z;edBd8       Z;d6ee*df   deee*e*f   df   fd9Z; ed:      Z<d; Z=d< Z>d=e*defd>Z? G d? d@e@      ZAy)C    N)ApiMode
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      ?/var/www/html/immo/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     r1   wrapperz.deprecated.<locals>.decorator.<locals>.wrapperS   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>.decorator9   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>   3   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   e   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   k   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[   t   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   r   RespV1)api_mode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   F)rY   r   is_v2_deleted_objectr   r   r   c                      y r}   rG   r   rY   r   r   r   r   s         r1   r   r      s     r2   c                      y r}   rG   r   s         r1   r   r     s     r2   c           	         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              rt	        | |      s| j                         } | j                  d      }
t	        |
t              rF|r	ddlm} |}ne|dk(  r&|
d	k(  r!dd
lm} | j                  dd      } ||      }n:ddlm}  |||
      }n*d| v rd| v rt(        j*                  j,                  }n||}n|}|j/                  | |||      }|1t1        |d      r%t3        |d      dk(  st3        |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(   )DeletedObjectV2zv2.core.event)get_v2_event_classr7   rC   )get_object_class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   stripe.v2._deleted_objectr   stripe.events._event_classesr   stripe._object_classesr   r   v2
ListObject_construct_fromrq   getattr_retrieve_params)r   rY   r   r   r   r   stripe_responser   r   i
klass_namer   klassr   
event_typer   objs                    r1   r   r     s    O 72$'D/../$ 
  &A1E#!	
 	
 
D$	
4(Fyy{XXh'
j#&#C%T!jO&CK!XXfb1
*:6C(:> t^4 7II((EE E##)	 $ 
 X&h'61C*o= $*C 
ND))w
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   f  sd     #t,/0q"00 
C	25))+>$!Q?1%%>>
 1
 ?s   A)A.idempotency_keyc                      y r}   rG   r   s    r1   populate_headersr   z  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   urlc                 (    | j                  d      ryy)Nz/v2r   r   )
startswith)r   s    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)Br9   r~   loggingrV   rD   r`   r&   stripe._api_moder   urllib.parser   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   boolr   r   r   r   r   r   r   r(   r   rG   r2   r1   <module>r      si      
 	 	  $ # 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 "'S*
S* WS#X&'S* T.)*	S*
 S* S* S* >4//0S*l( 
	#s(^ 

 
 8 
 839%
4S>4  CL
c g !6 !r2   