
    Chu                        % S SK JrJr  S SKrS SK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JrJrJrJr  S SKrS SKJrJrJr  S SKrS SKJrJrJrJrJ r   S SK!J"r"  S SK#J$r%  S SK&J'r'  S SK(J)r)  S S	KJ*r*  S S
K+J,r,J-r-  S SK.J/r/J0r0J1r1  S SK2J3r3J4r4  S SK5J6r6J7r7  S SK8J9r9J:r:J;r;  S SK<J=r=  S SK>J?r?  S SK@JArA  \(       a  S SKBJCrC  \S   rDSqE\\F   \GS'    " S S\H5      rIg)    )BytesIOIOBaseN)
AnyAsyncIterableDictListMappingOptionalTupleUnioncastClassVar)TYPE_CHECKINGLiteralNoReturnUnpack)urlsplit
urlunsplitparse_qs)	log_debuglog_infodashboard_link_convert_to_stripe_objectget_api_mode)VERSION)MultipartDataGenerator)	urlencode)_api_encode_json_encode_date_callback)StripeResponseStripeStreamResponseStripeStreamResponseAsync)RequestOptionsmerge_options)RequestorOptions_GlobalRequestorOptions)
HTTPClientnew_default_http_clientnew_http_client_async_fallback)AppInfo)BaseAddress)ApiMode)StripeObject)getpostdelete_default_proxyc                   `   \ rS rSr% Sr\S   \S'     S0S\\   S\\	   4S jjr
S\	4S	 jrS\\   SS 4S
 jr\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S\\   SS 4S j5       r\S 5       r  S0SS.S\S\S\\\\4      S\\   S\S\\\      SS4S jjjr  S0SS.S\S\S\\\\4      S\\   S\S\\\      SS4S jjjr  S0SS.S\S\S\\\\4      S\\   S\S\\\      S\ 4S jjjr!  S0SS.S\S\S\\\\4      S\\   S\S\\\      S\"4S jjjr#S\$4S jr%S r&S r'S  r(S\)S!\*S\4S" jr+  S0SS.S\S\S\\\\4      S\\   S\S!\*S\\\      4S# jjjr,   S1SS.S\S\S\\\\4      S\\   S$\-S\S!\*S\\\      S\.\/\0\\\4   4   4S% jjjr1   S1SS.S\S\S\\\\4      S\\   S$\-S\S!\*S\\\      S\.\2\3   \0\\\4   4   4S& jjjr4S' r5S(\/S)\0S*\\\4   S!\*S\64
S+ jr7S,\8S)\0S*\\\4   S!\*S\ 4
S- jr9S,\2\3   S)\0S*\\\4   S!\*S\"4
S. jr:S/r;g)2_APIRequestorE   Nz_APIRequestor|None	_instanceoptionsclientc                 6    Uc
  [        5       nXl        X l        g N)r%   _options_client)selfr6   r7   s      X/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/stripe/_api_requestor.py__init___APIRequestor.__init__H   s    
 ?&(G    returnc           	         U R                   nUc  [        R                  (       dQ  [        R                  [        R                  S.n[        SS[        S0 UD60UD6[        l        [        R                  qO-[        R                  [        :w  a  SS KnUR                  S5        [        R                  c   e[        R                  $ U$ )N)verify_ssl_certsproxyasync_fallback_clientr   zstripe.proxy was updated after sending a request - this is a no-op. To use a different proxy, set stripe.default_http_client to a new client configured with the proxy. )
r;   stripedefault_http_clientrC   rD   r(   r)   r1   warningswarn)r<   r7   kwargsrI   s       r=   _get_http_client_APIRequestor._get_http_clientV   s    > --(.(?(?#\\ .E .*H + +. 	.* "(/1 --999---r@   c                     U=(       d    0 nU R                   R                  5       nS H  nX1;   d  M
  X   c  M  X   X#'   M     [        [        S0 UD6U R                  S9$ )N)api_keystripe_accountstripe_versionr6   r7   rF   )r:   to_dictr3   r%   r;   )r<   r6   new_optionskeys       r=   _replace_options_APIRequestor._replace_optionsx   s`     -Rmm++-BC~',":#*<  C $3{3DLL
 	
r@   c                 .    U R                   R                  $ r9   )r:   rO   r<   s    r=   rO   _APIRequestor.api_key   s    }}$$$r@   c                 .    U R                   R                  $ r9   )r:   rP   rY   s    r=   rP   _APIRequestor.stripe_account       }}+++r@   c                 .    U R                   R                  $ r9   )r:   rQ   rY   s    r=   rQ   _APIRequestor.stripe_version   r]   r@   c                 .    U R                   R                  $ r9   )r:   base_addressesrY   s    r=   ra   _APIRequestor.base_addresses   r]   r@   c                 \    U R                   c  U " [        5       SS9U l         U R                   $ )z~
Returns the singleton instance of _APIRequestor, to be used when
calling a static method such as stripe.Customer.create(...)
NrR   )r5   r&   )clss    r=   _global_instance_APIRequestor._global_instance   s*     == (?(A$OCM}}r@   paramsc                  H    [         R                  5       R                  U 5      $ r9   )r3   re   rV   )rg   s    r=   _global_with_options"_APIRequestor._global_with_options   s     --/@@HHr@   c                 j    US   nUS   (       a  USUS   < 3-  nUS   (       a  USUS   < S3-  nU$ )Nnameversion/urlz ()rF   )rd   infostrs      r=   _format_app_info_APIRequestor._format_app_info   s@    6l	?DO--C;d5k++C
r@   )usagemethodro   base_addressru   r-   c                    [        U5      nU R                  U5      nUR                  UR                  5       UUSUUUUS9u  pnUR	                  XX5      n[        UUUUS9nU$ NFis_streamingapi_moderw   r6   ru   )resprg   	requestorr|   )r   rV   request_rawlower_interpret_responser   r<   rv   ro   rg   r6   rw   ru   r|   r~   rbodyrcoderheadersr}   objs                 r=   request_APIRequestor.request   s      $))'2	!*!6!6LLN% "7 	"
h ,,U8N'	
 
r@   c                   #    [        U5      nU R                  U5      nUR                  UR                  5       UUSUUUUS9I S h  vN u  pnUR	                  XX5      n[        UUUUS9nU$  N'7fry   )r   rV   request_raw_asyncr   r   r   r   s                 r=   request_async_APIRequestor.request_async   s       $))'2	'0'B'BLLN% (C 	(
 	"
h ,,U8N'	
 
'	"
s   AA0A.(A0c                    [        U5      nU R                  UR                  5       UUSUUUUS9u  pn
U R                  [	        [
        U5      U	U
U5      nU$ NTrz   )r   r   r   _interpret_streaming_responser   r   r<   rv   ro   rg   r6   rw   ru   r|   streamr   r   r}   s               r=   request_stream_APIRequestor.request_stream   st      $"&"2"2LLN% #3 	#
x 11  
 r@   c                   #    [        U5      nU R                  UR                  5       UUSUUUUS9I S h  vN u  pn
U R                  UU	U
U5      I S h  vN nU$  N% N7fr   )r   r   r   #_interpret_streaming_response_asyncr   s               r=   request_stream_async"_APIRequestor.request_stream_async  s       $(,(>(>LLN% )? 	)
 	#
x ==	
 
 !	#

s!   3AAAAAAc                 &    US   nS n[	        U[
        5      (       a  U R                  XX4U5      nUc,  US:X  a  U R                  XX4U5      OU R                  XX4U5      nUe! [         [        4 a    [        R                  " SX4-  UUU5      ef = f)Nerrorz@Invalid response object from API: %r (HTTP response code was %d)V2)	KeyError	TypeErrorr   APIError
isinstancerr   specific_oauth_errorspecific_v2_api_errorspecific_v1_api_error)r<   r   r   r}   r   r|   
error_dataerrs           r=   handle_error_response#_APIRequestor.handle_error_response-  s    		gJ 
 j#&&++djC ;
 t# **$* //$*  	= )$ 	.."N+ 	s   A" ".Bc           	      p   UR                  S5      nUR                  S5      nUR                  S5      nUUUUUUS.n	[        SUUR                  S5      UUR                  S5      S9  US:X  a  [        R                  " UUUUUU5      $ US	:X  a  [        R                  " S
0 U	D6$ U R                  XX4U5      $ )Ntypecodemessage)r   	http_bodyhttp_status	json_bodyheadersr   zStripe v2 API error receivedparam
error_code
error_typeerror_messageerror_paramidempotency_errortemporary_session_expiredrF   )r.   r   r   IdempotencyErrorTemporarySessionExpiredErrorr   )
r<   r   r   r}   r   r   r   r   r   
error_argss
             r=   r   #_APIRequestor.specific_v2_api_errorR  s    ~~f%~~f%..+ 

 	*!~~f-!"w/	
 &&))  0055C
CC ))$*
 	
r@   c           	         [        SUR                  S5      UR                  S5      UR                  S5      UR                  S5      S9  US:X  d  US:X  a<  UR                  S5      S	:X  a'  [        R                  " UR                  S5      XX45      $ US
;   a  UR                  S5      S:X  a'  [        R                  " UR                  S5      XX45      $ [        R
                  " UR                  S5      UR                  S5      UR                  S5      UUUU5      $ US:X  a'  [        R                  " UR                  S5      XX45      $ US:X  aI  [        R                  " UR                  S5      UR                  S5      UR                  S5      UUUU5      $ US:X  a'  [        R                  " UR                  S5      XX45      $ [        R                  " UR                  S5      XX45      $ )NzStripe v1 API error receivedr   r   r   r   r   i    
rate_limit)r   i  r   i  i  i  )
r   r.   r   RateLimitErrorr   InvalidRequestErrorAuthenticationError	CardErrorPermissionErrorr   )r<   r   r   r}   r   r   s         r=   r   #_APIRequestor.specific_v1_api_errory  s   *!~~f-!~~f-$..3"w/	
 C<SLZ^^F3|C''y)5  j ~~f%)<<--NN9-uT  00NN9-NN7+NN6*  c\,,y)5  c\??y)w'v&  c\((y)5  >>y)5 r@   c                 t   UR                  SU5      n[        SUUS9  XVXX4/nUS:X  a  [        R                  " U6 $ US:X  a  [        R                  " U6 $ US:X  a  [        R
                  " U6 $ US:X  a  [        R                  " U6 $ US:X  a  [        R                  " U6 $ US	:X  a  [        R                  " U6 $ g )
Nerror_descriptionzStripe OAuth error received)r   r   invalid_clientinvalid_grantinvalid_requestinvalid_scopeunsupported_grant_typeunsupported_response_type)	r.   r   oauth_errorInvalidClientErrorInvalidGrantErrorr   InvalidScopeErrorUnsupportedGrantTypeErrorUnsupportedResponseTypeError)r<   r   r   r}   r   r   descriptionargss           r=   r   "_APIRequestor.specific_oauth_error  s    hh2J?)!)	
 tF))11488?*00$77,,22D99?*00$773388$??66;;TBBr@   r|   c                    SUR                  5       < S[        < 3n[        R                  (       a%  USU R	                  [        R                  5      -   -  n[        SSU R                  5       R                  S.nS[        R                  /S[        R                  /S	S
 /4 H  u  pg U" 5       nXU'   M     [        R                  (       a  [        R                  US'   [        R                  " U5      USUR                  S5      < 3S.n	UR                  S5      n
U
(       a  XS'   UR                  S5      nU(       a  XS'   UR                  S5      nU(       a  XS'   US:X  d  US:X  a4  US:X  a.  U	R                  S[        [        R                   " 5       5      5        US:X  a  US:X  a  SU	S'   OSU	S'   UR                  S5      nU(       a  XS'   U	$ ! [         a    Sn GN5f = f)NzStripe/z PythonBindings/ pythonrG   )bindings_versionlang	publisherhttpliblang_versionplatformunamec                  J    SR                  [        R                  " 5       5      $ )Nr   )joinr   r   rF   r@   r=   <lambda>/_APIRequestor.request_headers.<locals>.<lambda>  s    chhx~~'78r@   z
(disabled)applicationzBearer rO   )zX-Stripe-Client-User-Agentz
User-AgentAuthorizationrP   zStripe-Accountstripe_contextzStripe-Contextidempotency_keyzIdempotency-Keyr/   r   r0   zapplication/jsonContent-Typez!application/x-www-form-urlencodedrQ   zStripe-Version)r   r   rG   app_infors   rL   rl   r   python_version	Exceptionjsondumpsr.   
setdefaultrr   uuiduuid4)r<   rv   r|   r6   
user_agentuaattrfuncvalr   rP   r   r   rQ   s                 r=   request_headers_APIRequestor.request_headers  s    NN

 ??# 5 5foo FFFJ !(!,,.33	.
 X445**+89
JD
#f tH
 ?? &B} +/**R.$,3KK	,BD#
 !%56(6$% %56(6$%!++&78)8%& VD 0Vx5G0#djjl2CDV4*<'*M' %56(6$%M  #"#s   (GG%$G%c          
         [        U R                  U5      nU(       a  SU;   a  US   b  US   US'   UR                  S5      c  [        R                  " S5      eU R                  R
                  R                  U5      < U< 3n	U=(       d    0 nU(       a  US:X  d  US:X  a  0 n
[        [        U5      R                  5      R                  5        H<  u  pUR                  S5      (       a	  XUSS '   M$  [        U5      S	:X  a  US
   OUX'   M>     SU
;   a'  SU;   a!  [        [        / U
S   QUS   Q5      5      US'   0 U
EUEn[        [        [        U=(       d    0 U5      5      5      nUR!                  SS5      R!                  SS5      nUS:X  a#  ["        R$                  " U=(       d    0 [&        S9nOUnSnSU;   a  US   b  [)        US   5      nU R+                  [-        [.        U5      UU5      nUS:X  d  US:X  a+  U(       a!  [        U	5      u  nnnnn[1        UUUUU45      n	SnOUS:X  ac  Ub]  UR                  S5      S:X  aH  [3        5       nUR5                  U=(       d    0 5        UR7                  5       nSUR8                  < 3US'   OUnO[        R:                  " SU< S35      eUb  UR                  5        H  u  nnUUU'   M     UR                  S5      nUU	UUUUUUR                  S5      4$ )zP
Mechanism for issuing an API call.  Used by request_raw and request_raw_async.
rQ   NrO   zNo API key provided. (HINT: set your API key using "stripe.api_key = <API-KEY>"). You can generate API keys from the Stripe web interface.  See https://stripe.com/api for details, or email support@stripe.com if you have any questions.r.   r0   z[]   r   expandz%5B[z%5D]r   )defaultr   r/   content_typezmultipart/form-datazmultipart/form-data; boundary=r   zUnrecognized HTTP method ze.  This may indicate a bug in the Stripe bindings.  Please contact support@stripe.com for assistance.max_network_retries)r$   r:   r.   r   r   ra   r   r   queryitemsendswithlenlistsetr   r   replacer   r   r   dictr   r   HttpVerbr   r   
add_paramsget_post_databoundaryAPIConnectionError)r<   rv   ro   rg   r6   rw   r|   ru   request_optionsabs_urlexisting_paramskvencoded_paramsencoded_bodysupplied_headersr   schemenetlocpath_fragment	post_data	generatorrU   valuer   s                              r=   _args_for_request_with_retries,_APIRequestor._args_for_request_with_retries  sD    (w?  G+)*6 188H0IO,-y)1++  MM((,,\:

 2v&H*< !O #!4!45;;=::d##./AcrF+ 25Q11!O& > ?*x6/A#'G/(3GfX6FGH$x ! F #4FLb((K#LM
 (//s;CCE3Ot::"&@L *L(	*6#OI$>?&&6"	
 U?f0 5=W4E1a$VT>8D Iv#KK/3HH24	$$V\r2%335	:C:L:LN ' )	** "(*  '.446
U$ 7 .112GH  01
 	
r@   r{   c          
      ~   U R                  UUUUUUUS9u  nn	n
nnnnn[        SXS9  [        SXS9  U(       a'  U R                  5       R	                  UU	U
UUUS9u  nnnO&U R                  5       R                  UU	U
UUUS9u  nnn[        SU	US9  [        S	US
9  SU;   a  US   n[        S[        U5      S9  UUU4$ )Nrw   r|   ru   Request to Stripe apirv   ro   Post detailsr  api_versionr   _usageStripe API responser  response_codeAPI response bodybody
Request-IdDashboard link for requestlink)r  r   r   rL   request_stream_with_retriesrequest_with_retriesr   r<   rv   ro   rg   r6   r{   rw   r|   ru   r  r   r  r   r  r$  rcontentr   r   
request_ids                      r=   r   _APIRequestor.request_raw  s3   * //% 0 
		
 	(En	
 
 %%'CC$7 D 	 %%'<<$7 = 	 	&WEJ%H58#!,/J,#J/
 ((r@   c          
        #    U=(       d    / nUS/-   nU R                  UUUUUUUS9u  nn	n
nnnnn[        SXS9  [        SUUS9  U(       a/  U R                  5       R	                  UU	U
UUUS9I Sh  vN u  nnnO.U R                  5       R                  UU	U
UUUS9I Sh  vN u  nnn[        S	U	US
9  [        SUS9  SU;   a  US   n[        S[        U5      S9  UUU4$  No NB7f)z#
Mechanism for issuing an API call
asyncr  r   r!  r"  r#  r%  Nr'  r(  r*  r+  r-  r.  r/  )r  r   r   rL   !request_stream_with_retries_asyncrequest_with_retries_asyncr   r3  s                      r=   r   _APIRequestor.request_raw_async  sg      	! //% 0 
		
 	(E$#	
 
 ++-OO$7 P  	 ++-HH$7 I  	 	&WEJ%H58#!,/J,#J/
 ((As%   A1C'3C#4.C'"C%#AC'%C'c                 @    SUs=:*  =(       a
    S:  (       + $ s  (       + $ )N   i,  rF   )r<   r   s     r=   _should_handle_code_as_error*_APIRequestor._should_handle_code_as_error8  s!    %%%#%%%%%%r@   r   r   r   c                 v    [        US5      (       a  [        [        U5      R                  S5      n[	        [        [
        U5      UU5      nU R                  U5      (       a  U R                  XUR                  X45        U$ ! [         a,    [        R                  " SX4-  [        [        U5      UU5      ef = f)Ndecodezutf-8z>Invalid response body from API: %s (HTTP response code was %d))hasattrr   bytesrA  r    rr   r   r   r   r>  r   data)r<   r   r   r   r|   r}   s         r=   r   !_APIRequestor._interpret_response;  s    	uh'' UE*11':!S% D ,,U33&&dii   	...16?UE" 	s   AB 6B8r   c                 p   U R                  U5      (       a  [        US5      (       a  [        [        U5      R	                  5       nOH[        US5      (       a  UR                  5       nO&[        SU R                  5       R                  -  5      eU R                  XRX45        [        S5      e[        XU5      $ )Ngetvaluereadz`HTTP client %s does not return an IOBase object which can be consumed when streaming a response./_interpret_response should have raised an error)r>  rB  r   r   rG  rH  NotImplementedErrorrL   rl   r   RuntimeErrorr!   )r<   r   r   r   r|   json_contents         r=   r   +_APIRequestor._interpret_streaming_responseZ  s     ,,U33vz**#GV4==?((%{{})A++-223  $$\(MA  (x@@r@   c                    #    U R                  U5      (       a  SR                  U Vs/ s S h  vN oUPM  [	        XU5      $  N
 Os  snf sn5      nU R                  XbX45        [        S5      e7f)Nr@   rI  )r>  r   r   rK  r"   )r<   r   r   r   r|   chunkrL  s          r=   r   1_APIRequestor._interpret_streaming_response_asyncy  si      ,,U3388f$E$EUU -VHEE %F$EFL$$\(MA s5   &A/AA
AA
AA/A
A*A/)r;   r:   )NN)NNF)<__name__
__module____qualname____firstlineno__r5   r   __annotations__r
   r%   r'   r>   rL   r#   rV   propertyrO   rP   rQ   ra   classmethodre   staticmethodr   ri   rs   rr   r	   r   r+   r   r   r   r!   r   r"   r   r   r   r   r   r   r  r,   r   r  boolr   objectintr   r   rC  r   r>  r    r   r   r   r   __static_attributes__rF   r@   r=   r3   r3   E   s   04Ix,-4 /3'+*+ $ *  D

/

	

 % % , , , , , , 	 	 I(I	I I
   /3,0 &*  c*+	
 .) " S	" 
J /3,0 &*  c*+	
 .) " S	" 
J /3,0 &*  c*+	
 .) " S	" 
F /3,0 &*  c*+	
 .) " S	" 
#:#	#J%
N4l4==*1=<J=F /3,0O
 &*O
O
 O
 c*+	O

 .)O
 "O
 O
 S	"O
j /3,0"I) &*I)I) I) c*+	I)
 .)I) I) "I) I) S	"I) 
vsGCH--	.I)^ /3,0"R) &*R)R) R) c*+	R)
 .)R) R) "R) R) S	"R) 
}U#S'#s(*;;	<R)h&  #s(#	
  
>AA A #s(#	A
 A 
A>Fe$F F #s(#	F
 F 
#Fr@   r3   )Jior   r   r   r   typingr   r   r   r   r	   r
   r   r   r   r   typing_extensionsr   r   r   r   r   urllib.parser   r   r   rG   stripe._utilr   r   r   r   r   stripe._versionr   stripe._error_errorr   stripe.oauth_errorr    stripe._multipart_data_generatorr   r   stripe._encoder   r   stripe._stripe_responser    r!   r"   stripe._request_optionsr#   r$   stripe._requestor_optionsr%   r&   stripe._http_clientr'   r(   r)   stripe._app_infor*   stripe._base_addressr+   stripe._api_moder,   stripe._stripe_objectr-   r  r1   rr   rU  rZ  r3   rF   r@   r=   <module>rp     s            7 7   $  ( C " B 
 B 
 % , $2*+ !% $CFF CFr@   