
    Ch5                        % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
JrJr  S SKJrJr  S SKJrJrJrJrJrJrJrJrJrJr  S SKrS SKr\(       a  S SKJr  S SKJr  S SK J!r!  \RD                  RG                  S	5      r$\RJ                  " S
5      r&\RN                  \(S'   \(       a  \RR                  r)O&\" S5      r*\+SS.S\,S\\\-      S\.S\\*/\*4   4S jjr)S r/S r0S r1S r2S r3S r4S r5\6" \S5      (       a  S r7OS r7S r8S r9\S \\,\4   \S!   4   r:\     S@S"S#.S$\S \\,\4   4   S%\\,   S&\\,   S'\\,   S(\\\,\4      S)\\S*      S+\	SS*4S, jjj5       r;\     S@S"S#.S$\\:   S%\\,   S&\\,   S'\\,   S(\\\,\4      S)\\S*      S+\	S\S*   4S- jjj5       r;     S@S"S#.S$\:S%\\,   S&\\,   S'\\,   S(\\\,\4      S)\\S*      S+\	S\S*\S*   4   4S. jjjr;\SSS/.S$\S \\,\4   4   S(\\\,\4      S)\\S*      S0S1S+\	SS*4S2 jj5       r<\SSS/.S$\\:   S(\\\,\4      S)\\S*      S0S1S+\	S\S*   4S3 jj5       r<SSS/.S$\:S(\\\,\4      S)\\S*      S0S1S+\	S\S*\S*   4   4S4 jjr<S5 r=\S6\,S\\,\,4   4S7 j5       r>\SAS8 j5       r>S6\\,S4   S\\\,\,4   S4   4S9 jr>\" S:5      r?S; r@S< rAS= rB " S> S?\C5      rDg)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                8   ^ ^^ S[         S[         4U UU4S jjnU$ )N__argr!   c                   >^ ^^ Tc	  TT l         T $ [        T [        5      (       ak  T R                  mT R                  [
        R                  Lm[        R                  " T5      UUUUU4S j5       n[        U5      T l        T=T l         Ul         T $ [        T 5      (       a2  [        R                  " T 5      U UUU4S j5       nT=T l         Ul         U$ [        ST < 35      e)Nc                    > [         R                  " TTTS-   S9  T[        R                  La  T" U /UQ70 UD6$ T(       d&  U(       d  U(       a  [	        U R
                   S35      eT" U 5      $ )Nr   r   z() takes no arguments)warningswarnobject__new__	TypeError__name__)clsargskwargsr    r   has_initoriginal_newr   s      O/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/stripe/_util.pyr)   .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                  F   > [         R                  " TTTS-   S9  T" U 0 UD6$ )Nr   r   )r&   r'   )r-   r.   r#   r    r   r   s     r1   wrapper.deprecated.<locals>.decorator.<locals>.wrapperT   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   r/   r0   r    r   r   s   `  @@r1   	decoratordeprecated.<locals>.decorator:   s    ',$E4(($}} >>@.
1 
1 /
1 !-W 5@EE$w'=%'2 (2 AFE$w'=005y: r3   )r   )r    r   r   r?   s   ``` r1   
deprecatedrA   4   s$    '	R '	B '	 '	R r3   c                  |    S[         R                  ;   =(       a#    S[         R                  R                  SS5      ;   $ )NAPPENGINE_RUNTIMEDevSERVER_SOFTWARE )osenvironget r3   r1   is_appengine_devrK   f   s3    "**, "**..2; 2 r3   c                  l    [         R                  S;   a  [         R                  $ [        S;   a  [        $ g )Ndebuginfo)r   logr   rJ   r3   r1   _console_log_levelrQ   l   s+    zz&&zz	(	(r3   c                     [        [        SSU 0UD65      n[        5       S:X  a  [        U[        R
                  S9  [        R                  U5        g )NmessagerN   filerJ   )logfmtdictrQ   printsysstderrr   rN   rS   paramsmsgs      r1   	log_debugr^   u   s>    
0g00
1Cw&c

#
LLr3   c                     [        [        SSU 0UD65      n[        5       S;   a  [        U[        R
                  S9  [        R                  U5        g )NrS   rM   rT   rJ   )rV   rW   rQ   rX   rY   rZ   r   rO   r[   s      r1   log_infor`   |   s?    
0g00
1C00c

#
KKr3   c                      [         R                  c  g [        R                  " S[         R                  5      n U c  g U R	                  5       S   $ )Nzsk_(live|test)_r   )r   api_keyrematchgroups)rd   s    r1   _test_or_live_environmentrf      s=    ~~HH'8E}<<>!r3   c                 D    SR                  [        5       =(       d    SU S9$ )Nz/https://dashboard.stripe.com/{env}/logs/{reqid}test)envreqid)formatrf   )
request_ids    r1   dashboard_linkrm      s(    <CC%'16 D  r3   c           
          S nSR                  [        U R                  5       5       VVs/ s H  u  p#U" X#5      PM     snn5      $ s  snnf )Nc                 @   [        US5      (       a  UR                  S5      n[        U[        5      (       d  [        U5      n[        R
                  " SU5      (       a  [        U5      n[        R
                  " SU 5      (       a  [        U 5      n SR                  XS9$ )Ndecodezutf-8z\sz{key}={val}keyval)hasattrrp   r8   strrc   searchreprrk   rq   s     r1   fmtlogfmt.<locals>.fmt   s}    3!!**W%C
 #s##c(C99UC  s)C99UC  s)C###55r3    )joinsorteditems)propsrx   rr   rs   s       r1   rV   rV      s=    6" 886%++-3HI3HxsS]3HIJJIs   A
compare_digestc                 .    [         R                  " X5      $ N)hmacr   )val1val2s     r1   secure_comparer      s    ""4..r3   c           	      j   [        U 5      [        U5      :w  a  gSn[        U [        5      (       a5  [        U[        5      (       a   [        X5       H  u  p4X#U-  -  nM     US:H  $ [        X5       H;  u  p4U[	        [        [        U5      5      [	        [        [        U5      5      -  -  nM=     US:H  $ )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   )lenr8   byteszipordr   ru   )r   r   resultxys        r1   r   r      s     t9D	!dE""z$'>'>Da% (
 { D#d3l+c$sA,.??? ({r3   c                      SSK Jn   U $ )Nr   THIN_EVENT_CLASSES)stripe.events._event_classesr   r   s    r1   get_thin_event_classesr      s    ?r3   c                 .    U S:X  a  SSK Jn  U$ SSK Jn  U$ )NV2r   )V2_OBJECT_CLASSES)OBJECT_CLASSES)stripe._object_classesr   r   )api_moder   r   s      r1   get_object_classesr      s    4<  5r3   r   RespV1)r   resprb   stripe_versionstripe_accountr\   klass_r   r   c                    g r   rJ   r   rb   r   r   r\   r   r   s          r1   convert_to_stripe_objectr      s     r3   c                    g r   rJ   r   s          r1   r   r      s     r3   c                H    SSK Jn  [        U UUUR                  " UUUS9US9$ )Nr   r   )rb   r   r   r   r\   r   	requestorr   )stripe._api_requestorr   _convert_to_stripe_object_global_with_options)r   rb   r   r   r\   r   r   r   s           r1   r   r      s9     4$44))

 
 
r3   )r\   r   r   r   c                     g r   rJ   r   s        r1   r   r     s     r3   c                     g r   rJ   r   s        r1   r   r     s     r3   c           
         S nSSK Jn  SSKJn  [	        X5      (       a  U n[        [        UR                  5      n [	        U [        5      (       a'  U  Vs/ s H  n[        [        SU5      UUUS9PM     sn$ [	        U [        5      (       Ga5  [	        X5      (       Gd$  U R                  5       n U R                  S5      n	[	        U	[        5      (       aq  US:X  aA  U	S:X  a;  U R                  S	S
5      n
[        5       R                  U
[        R                  5      nOY[!        U5      R                  U	[        R                  5      nO/SU ;   a!  SU ;   a  [        R"                  R$                  nOUb  UnOUnUR'                  U UUUS9nUb7  [)        US5      (       a&  [+        US5      S:X  d  [+        US5      S:X  a  Xl        U$ [        SU 5      $ s  snf )Nr   r   r   z%Union[StripeResponse, Dict[str, Any]])r   r   r   r   r(   r   zv2.core.eventr9   rF   datanext_page_url)valueslast_responser   r   listsearch_resultr   )stripe._stripe_responser   stripe._stripe_objectr   r8   r   r   r   r   r   rW   copyrI   ru   r   r   r   v2
ListObject_construct_fromrt   getattr_retrieve_params)r   r\   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(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= $* 
ND))m
s    Gc                    [        U [        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ [        U [        5      (       a/  U R	                  5        VVs0 s H  u  p#U[        U5      _M     snn$ U $ s  snf s  snnf )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.
)r8   r   convert_to_dictrW   r}   )r   r   kvs       r1   r   r   p  sp     #t,/0Cq"C00 
C		25))+>+$!?1%%+>>
 1
 ?s   A8A=idempotency_keyc                     g r   rJ   r   s    r1   populate_headersr     s     r3   c                     g r   rJ   r   s    r1   r   r     s    58r3   c                     U b  SU 0$ g )NzIdempotency-KeyrJ   r   s    r1   r   r     s     "!?33r3   Tc                 H    U R                  5       nUR                  U5        U$ r   )r   update)r   r   zs      r1   merge_dictsr     s    	AHHQKHr3   c                     [        U 5      nU$ r   )r   )idquotedIds     r1   sanitize_idr     s    "~HOr3   c                 2    U R                  S5      (       a  gg)Nz/v2r   r   )
startswith)urls    r1   get_api_moder     s    
~~er3   c                   f    \ rS rSr% S r\" S5      r\\S'   S\S\4S jr	SS\
\\      4S	 jjrS
rg)class_method_varianti  c                     Xl         g r   )class_method_name)selfr   s     r1   r:   class_method_variant.__init__  s    !2r3   r   methodr!   c                 .    Xl         [        [        U 5      $ r   )r   r   r   )r   r   s     r1   __call__class_method_variant.__call__  s    At}r3   Nobjtypec                 b   ^ ^^ [         R                  " T R                  5      UUU 4S j5       nU$ )Nc                     > Tb  TR                   " T/U Q70 UD6$ [        U 5      S:  a3  Tb0  [        U S   T5      (       a  TR                   " U S   /U SS  Q70 UD6$ [        TTR                  5      nU" U 0 UD6$ )Nr   r   )r   r   r8   r   r   )r-   r.   class_methodr   r   r   s      r1   _wrapper.class_method_variant.__get__.<locals>._wrapper  s     {{38888D	A'tAw00
 {{47@T!"X@@@  'w0F0FG#T4V44r3   )r;   r<   r   )r   r   r   r   s   ``` r1   __get__class_method_variant.__get__  s)    		%	5 
&	5& r3   )r   r   r   )r+   
__module____qualname____firstlineno__r:   r	   r   r   __annotations__r   r   r   r   __static_attributes__rJ   r3   r1   r   r     sD    3 	AKq Q HT#Y$7  r3   r   )NNNNN)r   Nr!   N)Er;   r   iologgingrY   rG   rc   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   rH   rI   r   	getLoggerr   Loggerr   rA   r   DeprecationWarningru   WarningintrK   rQ   r^   r`   rf   rm   rV   rt   r   r   r   r   r   r   r   r   r   r   r   r   r(   r   rJ   r3   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 !r3   