
    _j5                        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         !                    d	          Z" ej#        d
          Z$ej%        e&d<   erej'        Z'n0 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@          ZAdS )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                8     dt           dt           f fd}|S )N__argr!   c                     	 _          S t           t                    ra j         j        t
          j        ut          j                  fd            }t          |           _        x _         |_          S t                     r2t          j                    fd            }x _         |_         |S t          d           )Nc                     t          j        dz              t          j        ur | g|R 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      P/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/stripe/_util.pyr)   z.deprecated.<locals>.decorator.<locals>.__new__A   s    MZ!^    $6>99+|CA$AAA&AAA% 14 16 1'3<(N(N(NOOO+|C000    c                  H    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>    MZ!^    !5$1&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   s0   ',$E4(( #$} >@..
1 
1 
1 
1 
1 
1 
1 
1 /.
1 !-W 5 5@EE$w'=% ''2 2 2 2 2 2 2 ('2 AFE$w'=:05: :  r2   )r   )r    r   r   r=   s   ``` r1   
deprecatedr>   3   sD    '	R '	B '	 '	 '	 '	 '	 '	 '	 '	R r2   c                  b    dt           j        v o!dt           j                            dd          v S )NAPPENGINE_RUNTIMEDevSERVER_SOFTWARE )osenvironget r2   r1   is_appengine_devrH   e   s4    "*, "*..2; ; 2 r2   c                  Z    t           j        dv rt           j        S t          dv rt          S d S )Ndebuginfo)r   logr   rG   r2   r1   _console_log_levelrN   k   s/    z&&&z	(	(	(tr2   c                     t          t          dd| i|          }t                      dk    rt          |t          j                   t                              |           d S )NmessagerK   filerG   )logfmtdictrN   printsysstderrr   rK   rP   paramsmsgs      r1   	log_debugr[   t   s`    
00g000
1
1Cw&&c
####
LLr2   c                     t          t          dd| i|          }t                      dv rt          |t          j                   t                              |           d S )NrP   rJ   rQ   rG   )rS   rT   rN   rU   rV   rW   r   rL   rX   s      r1   log_infor]   {   sa    
00g000
1
1C000c
####
KKr2   c                      t           j        d S t          j        dt           j                  } | d S |                                 d         S )Nzsk_(live|test)_r   )r   api_keyrematchgroups)ra   s    r1   _test_or_live_environmentrc      s@    ~H'88E}<<>>!r2   c                 L    d                     t                      pd|           S )Nz/https://dashboard.stripe.com/{env}/logs/{reqid}test)envreqid)formatrc   )
request_ids    r1   dashboard_linkrj      s0    <CC%''16 D   r2   c                     d d                     fdt          |                                           D                       S )Nc                 R   t          |d          r|                    d          }t          |t                    st          |          }t	          j        d|          rt          |          }t	          j        d|           rt          |           } d                    | |          S )Ndecodezutf-8z\sz{key}={val}keyval)hasattrrm   r6   strr`   searchreprrh   rn   s     r1   fmtzlogfmt.<locals>.fmt   s    3!! 	&**W%%C
 #s## 	c((C9UC   	s))C9UC   	s))C###555r2    c                 .    g | ]\  }} ||          S rG   rG   ).0ro   rp   ru   s      r1   
<listcomp>zlogfmt.<locals>.<listcomp>   s'    IIIxsCSSc]]IIIr2   )joinsorteditems)propsru   s    @r1   rS   rS      sK    6 6 6" 88IIII6%++--3H3HIIIJJJr2   compare_digestc                 ,    t          j        | |          S N)hmacr~   )val1val2s     r1   secure_comparer      s    "4...r2   c           	         t          |           t          |          k    rdS d}t          | t                    r4t          |t                    rt          | |          D ]\  }}|||z  z  }n^t          | |          D ]M\  }}|t	          t          t          |                    t	          t          t          |                    z  z  }N|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     t99D		!!5dE"" 	@z$'>'> 	@D$    1!a%  D$ @ @1#d3ll++c$sA,,.?.???{r2   r   RespV1)api_moderespr_   stripe_versionstripe_accountrY   klass_r   r   c                    d S r   rG   r   r_   r   r   rY   r   r   s          r1   convert_to_stripe_objectr      s	     Sr2   c                    d S r   rG   r   s          r1   r   r      s	     3r2   c          
      X    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33333$4-4))
 
 

 
 
 
 
r2   F)rY   r   is_v2_deleted_objectr   r   r   c                     d S r   rG   r   rY   r   r   r   r   s         r1   r   r      s	     Sr2   c                     d S r   rG   r   s         r1   r   r     s	     3r2   c                 N   d }ddl m} ddlm} t	          | |          r| }t          t          |j                  } t	          | t                    rfd| D             S t	          | t                    rt	          | |          s| 
                                } |                     d          }	t	          |	t                    rR|r	ddlm}
 |
}nhdk    r.|	dk    r(dd	lm} |                     d
d          } ||          }n4ddlm}  ||	          }n!d| v rd| v rt&          j        j        }n}n|}|                    | |          }|?t/          |d          r/t1          |d          dk    st1          |d          dk    r||_        |S t          d|           S )Nr   r   r   c                 R    g | ]#}t          t          d |                    $S )z%Union[StripeResponse, Dict[str, Any]])r   r   r   r   )r   r   )rx   ir   r   r   s     r1   ry   z-_convert_to_stripe_object.<locals>.<listcomp>(  sQ     
 
 
  &A1EE#!	  
 
 
r2   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   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   
klass_namer   klassr   
event_typer   objs     ```           r1   r   r     sJ    O 766666222222$'' 0D/.//$ <*
 
 
 
 
 
 
 
 
 	
 
D$		 2*
4(F(F 2*yy{{XXh''
j#&& 	!# ?CCCCCC%T!!jO&C&CKKKKKK!XXfb11
**:66CCCCCC((:>> t^^4 7 7I(EEEE E##)	 $ 
 
 X&&  h''611C**o== $*C 
ND)))r2   c                     t          | t                    rd | D             S t          | t                    rd |                                 D             S | S )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.
    c                 ,    g | ]}t          |          S rG   convert_to_dict)rx   r   s     r1   ry   z#convert_to_dict.<locals>.<listcomp>p  s     000q""000r2   c                 4    i | ]\  }}|t          |          S rG   r   )rx   kvs      r1   
<dictcomp>z#convert_to_dict.<locals>.<dictcomp>u  s&    >>>$!Q?1%%>>>r2   )r6   r   rT   r|   )r   s    r1   r   r   f  s_     #t 00C0000 
C		 >>#))++>>>>
r2   idempotency_keyc                     d S r   rG   r   s    r1   populate_headersr   z  s	     Sr2   c                     d S r   rG   r   s    r1   r   r     s    58Sr2   c                     | d| iS d S )NzIdempotency-KeyrG   r   s    r1   r   r     s     "!?334r2   Tc                 X    |                                  }|                    |           |S r   )r   update)r   r   zs      r1   merge_dictsr     s#    	AHHQKKKHr2   c                 $    t          |           }|S r   r   )idquotedIds     r1   sanitize_idr     s    "~~HOr2   urlc                 4    |                      d          rdS dS )Nz/v2r   r   )
startswith)r   s    r1   get_api_moder     s"    
~~e t tr2   c                   l    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dS )
class_method_variantc                     || _         d S r   )class_method_name)selfr   s     r1   r8   zclass_method_variant.__init__  s    !2r2   r   methodr!   c                 :    || _         t          t          |           S r   )r   r   r   )r   r   s     r1   __call__zclass_method_variant.__call__  s    At}}r2   Nobjtypec                 X     t          j         j                   fd            }|S )Nc                       j         g| R i |S t          |           dk    r75t          | d                   r j         | d         g| dd          R 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888D		A'tAw00 ( #t{47@T!""X@@@@@@  'w0FGG#|T4V444r2   )r9   r:   r   )r   r   r   r   s   ``` r1   __get__zclass_method_variant.__get__  sF    		%	%	5 	5 	5 	5 	5 	5 
&	%	5& r2   r   )r+   
__module____qualname__r8   r	   r   r   __annotations__r   r   r   r   rG   r2   r1   r   r     s         3 3 3 	AKKK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      s          



 				 				  $ $ $ $ $ $ # # # # # # 1 1 1 1 1 1 1 1                             4666666222222333333Z^^L))
**844 4 4 4 9"-JJ	B -?	/ / // 4=)/ 	/
 
2$(	/ / / /d            K K K, 74!"" / / / /
  ( 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* S*
S* WS#X&'S* T.)*	S*
 S* S* S* >4//0S* S* S* S*l  ( 
	#s(^   

 
 8 8 8 
 839%
4S>4     GCLL    
c g    ! ! ! ! !6 ! ! ! ! !r2   