
    jof}                     ,   U d dl m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	Z	d dl
Z
d dlmZ d dlZd dlmZ d dlmZ d dl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mZmZm Z  d dl!m"Z"m#Z#m$Z$m%Z%m&Z& 	 d dl'm(Z) d dl*m+Z, n# e-$ r Y nw xY w	 d dl.Z.n# e-$ r dZ.Y nw xY w	 d dl/Z/d dl0Z0d d	l/m1Z2 d d
l/m3Z4 n# e-$ r dZ/dZ0Y nw xY w	 d dl5Z5d dl5m6Z7 d dl5m8Z9 n# e-$ r dZ5Y nw xY w	 d dl:Z:d dl:m;Z< 	 e=e>d<   e:j?        Z@eAe>d<   eAe>d<   eAe>d<   d e@B                    d          D             \  ZCZDZEeCeDeEfdk     r ejF        G                    de@d           dZ:n# eH$ r Y nw xY w# e-$ r dZ:Y nw xY w	 d dlImJZJ n# e-$ r dZJY nw xY wd dlKmLZLmMZM d ZNdededdfdZOdededdfdZP G d  deQ          ZR G d! d"eR          ZS G d# d$eR          ZT G d% d&eR          ZU G d' d(eR          ZV G d) d*eR          ZW G d+ d,eR          ZX G d- d.eR          ZYdS )/    )BytesION)HTTPResponse)_util)RequestMetrics)APIConnectionError)AnyDictIterableListMappingMutableMappingOptionalTupleClassVarUnioncastoverloadAsyncIterable)LiteralNoReturn	TypedDict	AwaitableNever)Timeout)Client)ClientTimeout)StreamReader)Sessionversionmajorminorpatchc                 ,    g | ]}t          |          S  )int).0is     M/var/www/html/Alfredo/env/lib/python3.11/site-packages/stripe/_http_client.py
<listcomp>r)   W   s    BBB!s1vvBBB    .)r      r,   zWarning: the Stripe library requires that your Python "requests" library be newer than version 0.8.8, but your "requests" library is version a#  . Stripe will fall back to an alternate HTTP library so everything should work. We recommend upgrading your "requests" library. If you have any questions, please contact support@stripe.com. (HINT: running "pip install -U requests" should upgrade your requests library to the latest version.))urlfetch)urlparseParseResultc                  b    t          t          t          j                    dz                      S )Ni  )r%   roundtimer$   r*   r(   _now_msr3   r   s#    uTY[[4'(()))r*   argskwargsreturn
HTTPClientc                  z    t           rt          }n%t          rt          }nt          rt
          }nt          } || i |S N)r-   UrlFetchClientrequestsRequestsClientpycurlPycurlClientUrllib2Clientr4   r5   impls      r(   new_default_http_clientrB   v   sI     	 	 4    r*   c                  \    t           rt          }nt          rt          }nt          } || i |S r9   )httpxHTTPXClientaiohttpAIOHTTPClientNoImportFoundAsyncClientr@   s      r(   new_http_client_async_fallbackrI      s:     (	 ('4    r*   c                      e Zd ZU ee         ed<    G d de          ZdZdZ	dZ
ee         ed<   eed<   	 	 	 d3dedeeeef                  ded          fdZdeeeeeeeef                  f                  dee         dedee         fdZ	 d4deeeeeeef         f                  fdZ	 d4dedeeeeeeef         f                  fdZdefdZdeeef         deeef         fdZd Z	 	 d5d
ddededeeef         dedee         d eee                  deeeeeef         f         fd!Z	 	 d5d
ddededeeef         d eee                  deeeeeef         f         f
d"Zd
ddededeeef         ded#edee         d eee                  deeeeeef         f         fd$Z	 d4d
ddededeeeef                  ded eee                  deeeeeef         f         fd%Z	 d4d
ddededeeeef                  ded eee                  deeeeeef         f         fd&Z d' Z!	 	 d5d
ddededeeef         dee         d eee                  deeeef         fd(Z"	 	 d5d
ddededeeef         d eee                  dee#e$         eef         f
d)Z%e&d
ddededeeef         d#e'd*         dee         d eee                  deeeeeef         f         fd+            Z(e&d
ddededeeef         d#e'd	         dee         d eee                  dee#e$         eeeef         f         fd,            Z(d
ddededeeef         d#edee         d eee                  deeeeeef         f         fd-Z(	 d4dededeeef         dee$eeeef         f         fd.Z)	 d4dededeeef         dee#e$         eeeef         f         fd/Z*d0 Z+d1ede,d
         fd2Z-d
S )6r7   namec                   <    e Zd ZU ee         ed<   ee         ed<   dS )HTTPClient._ProxyhttphttpsN)__name__
__module____qualname__r   str__annotations__r$   r*   r(   _ProxyrM      s2         sm}r*   rU            ?<   _proxy_verify_ssl_certsTNverify_ssl_certsproxyasync_fallback_clientc                    || _         |r>t          |t                    r||d}t          |t                    st	          d          |r|                                nd | _        || _        t          j	                    | _
        d S )N)rN   rO   zqProxy(ies) must be specified as either a string URL or a dict() with string URL under the https and/or http keys.)rZ   
isinstancerS   dict
ValueErrorcopyrY   _async_fallback_client	threadinglocal_thread_local)selfr[   r\   r]   s       r(   __init__zHTTPClient.__init__   s     "2 	%%% 8!&77eT** 	    ',5ejjlll&;#&_..r*   responseapi_connection_errornum_retriesmax_network_retriesc                     ||nd}||k    rdS ||J |j         S |\  }}}| d|v r|d         dk    rdS |d         dk    rdS |dk    rdS |dk    rdS dS )	Nr   Fzstripe-should-retryfalsetrueTi  i  should_retry)rg   ri   rj   rk   rl   _status_coderheaderss           r(   _should_retryzHTTPClient._should_retry   s     $7#B 	 ---5
 (333'44#+ ; $9X$E$E-.'99u-.&88t #4 #4ur*   c                 r    |d S |\  }}}	 t          |d                   S # t          t          f$ r Y d S w xY w)Nzretry-after)r%   KeyErrorra   )rg   ri   rr   rt   s       r(   _retry_after_headerzHTTPClient._retry_after_header   sY     4!1h	x.///*% 	 	 	44	s   ! 66c                 ,   t          t          j        d|dz
  z  z  t          j                  }|                     |          }t          t          j        |          }|                     |          pd}|t          j        k    rt          ||          }|S )NrV      r   )minr7   INITIAL_DELAY	MAX_DELAY_add_jitter_timemaxrx   MAX_RETRY_AFTER)rg   rk   ri   sleep_secondsretry_afters        r(   _sleep_time_secondszHTTPClient._sleep_time_seconds   s     $kAo(>? 
 

 --m<< J4mDD ..x88=A*444];;Mr*   r   c                 B    |ddt          j        dd          z   z  z  }|S )NrW   rz   r   )randomuniform)rg   r   s     r(   r~   zHTTPClient._add_jitter_time  s*     	FN1a$8$8 899r*   headersr6   c                     t          | j        dd           }t          j        r@|r>d|                                i}t          |          }t          j        |          |d<   |S |S )Nlast_request_metricszX-Stripe-Client-Telemetry)getattrrf   stripeenable_telemetrypayloadr`   jsondumps)rg   r   r   	telemetryrets        r(   _add_telemetry_headerz HTTPClient._add_telemetry_header  sy      ' 6 
  
 " 	'; 	&(<(D(D(F(FI w--C/3z)/D/DC+,Jr*   c                     |\  }}}d|v rCt           j        r9|d         }t                      |z
  }t          |||          | j        _        d S d S d S )Nz
Request-Idusage)r   r   r3   r   rf   r   )rg   ri   request_startr   rr   rt   
request_idrequest_duration_mss           r(   _record_request_metricsz"HTTPClient._record_request_metrics  so    !1h8##(?#!,/J")))m";6D/u7 7 7D333 $###r*   )_usagemethodurl	post_datar   c          	      :    |                      ||||d||          S NFis_streamingrl   r   _request_with_retries_internalrg   r   r   r   r   rl   r   s          r(   request_with_retrieszHTTPClient.request_with_retries&  s6     22 3 3 
 
 	
r*   c          	      :    |                      ||||d||          S NTr   r   r   s          r(   request_stream_with_retriesz&HTTPClient.request_stream_with_retries:  s6     22 3 3 
 
 	
r*   r   c                <   |                      |          }d}	 t                      }		 |r|                     ||||          }
n|                     ||||          }
d }n# t          $ r}|}d }
Y d }~nd }~ww xY w|                     |
|||          ri|rt          j        d|j        z             |dz  }| 	                    ||
          }t          j        d||||fz             t          j        |           n"|
|                     |
|	|           |
S |J |Nr   Tz Encountered a retryable error %srz   zBInitiating retry %i for request %s %s after sleeping %.2f seconds.r   )r   r3   request_streamrequestr   ru   r   log_infouser_messager   r2   sleepr   rg   r   r   r   r   r   rl   r   rk   r   ri   connection_errore
sleep_times                 r(   r   z)HTTPClient._request_with_retries_internalN  s    ,,W55*	+#IIM
  M#22Wi   HH  $||FC)LLH#'  %      #$   !!*K9L  + $ N:*78   q !55k8LL
1&Z@A   
:&&&&'00 -v 1    $O+777**U*	+s   5A 
A6(A11A6c                     t          d          )Nz.HTTPClient subclasses must implement `request`NotImplementedErrorrg   r   r   r   r   r   s         r(   r   zHTTPClient.request  s     "<
 
 	
r*   c                     t          d          )Nz5HTTPClient subclasses must implement `request_stream`r   r   s         r(   r   zHTTPClient.request_stream  s     "C
 
 	
r*   c                      t          d          )Nz,HTTPClient subclasses must implement `close`r   rg   s    r(   closezHTTPClient.close  s    !:
 
 	
r*   c          	      J   K   |                      ||||d||           d {V S r   $_request_with_retries_internal_asyncr   s          r(   request_with_retries_asyncz%HTTPClient.request_with_retries_async  sX       >> 3 ? 
 
 
 
 
 
 
 
 	
r*   c          	      J   K   |                      ||||d||           d {V S r   r   r   s          r(   !request_stream_with_retries_asyncz,HTTPClient.request_stream_with_retries_async  sX       >> 3 ? 
 
 
 
 
 
 
 
 	
r*   Fc                
   K   d S r9   r$   rg   r   r   r   r   r   rl   r   s           r(   r   z/HTTPClient._request_with_retries_internal_async  s       .1Sr*   c                
   K   d S r9   r$   r   s           r(   r   z/HTTPClient._request_with_retries_internal_async  s       ?Bcr*   c                f  K   |                      |          }d}	 t                      }		 |r|                     ||||           d {V }
n|                     ||||           d {V }
d }n# t          $ r}|}d }
Y d }~nd }~ww xY w|                     |
|||          rp|rt          j        d|j        z             |dz  }| 	                    ||
          }t          j        d||||fz             | 
                    |           d {V  n"|
|                     |
|	|           |
S |J |r   )r   r3   request_stream_asyncrequest_asyncr   ru   r   r   r   r   sleep_asyncr   r   s                 r(   r   z/HTTPClient._request_with_retries_internal_async  s      ,,W55,	+#IIM  %)%>%>Wi& &            HH &*%7%7Wi& &            H $(  %      #$   !!*K9L  + $ N:*78   q !55k8LL
1&Z@A   &&z2222222222'00 -v 1    $O+777**Y,	+s   AA, ,
B6A??Bc                 x   K   | j         #| j                             ||||           d {V S t          d          )Nz4HTTPClient subclasses must implement `request_async`)rc   r   r   rg   r   r   r   r   s        r(   r   zHTTPClient.request_async'  sj       &24BBWi         "B
 
 	
r*   c                 x   K   | j         #| j                             ||||           d {V S t          d          )Nz;HTTPClient subclasses must implement `request_stream_async`)rc   r   r   r   s        r(   r   zHTTPClient.request_stream_async2  sj       &24IIWi         "I
 
 	
r*   c                 p   K   | j         | j                                          d {V S t          d          )Nz2HTTPClient subclasses must implement `close_async`)rc   close_asyncr   r   s    r(   r   zHTTPClient.close_async=  sK      &24@@BBBBBBBBB!@
 
 	
r*   secsc                 b    | j         | j                             |          S t          d          )Nz,HTTPClient subclasses must implement `sleep`)rc   r   r   rg   r   s     r(   r   zHTTPClient.sleep_asyncD  s7    &2.::4@@@!:
 
 	
r*   TNNr9   )NN).rP   rQ   rR   r   rS   rT   r   rU   r}   r|   r   r   boolr   rh   r   r   r%   r   r   ru   rx   r   floatr~   r   r   r   r   r   r   r   r   r   r   r   bytesr   r   r   r   r   r   r   r   r   r$   r*   r(   r7   r7      s	        
3-        IMOV "&.28<	/ // c6k*+/  (5	/ / / /2-5c8GCH4E+F!FGH- ''9:- 	-
 &c]- - - -` HL
 
 sCc1B'B!CD
 
 
 
 BF  5c738+<!<=>   2e    sCx(	c	      -1
 '+
 
 

 
 c"	

 
 &c]
 c#
 
sCc**	+
 
 
 
2  
 '+
 
 

 
 c"	
 c#
 
sCc**	+
 
 
 
: '+9+ 9+ 9+9+ 9+ c"	9+
 9+ 9+ &c]9+ c#9+ 
sCc**	+9+ 9+ 9+ 9+@ 
 '+
 
 

 
 '#s(+,	

 
 c#
 
sCc**	+
 
 
 
$ 
 '+
 
 

 
 '#s(+,	

 
 c#
 
sCc**	+
 
 
 

 
 
 -1
 '+
 
 

 
 c"	
 &c]
 c#
 
sC}	
 
 
 
2  
 '+
 
 

 
 c"	
 c#
 
}U#S#-	.
 
 
 
(  '+
1 
1 
1
1 
1 c"	
1 en
1 &c]
1 c#
1 
sCc**	+
1 
1 
1 X
1  '+
B 
B 
B
B 
B c"	
B dm
B &c]
B c#
B 
}U#S'#s(*;;	<
B 
B 
B X
B* '+;+ ;+ ;+;+ ;+ c"	;+ ;+ &c];+ c#;+ 
sCc**	+;+ ;+ ;+ ;+| LP	
 	
	
 #	
.5c3h.?	
	uc738,,	-	
 	
 	
 	
 LP	
 	
	
 #	
.5c3h.?	
	}U#S'#s(*;;	<	
 	
 	
 	

 
 

 
)D/ 
 
 
 
 
 
r*   c                       e Zd ZdZ	 	 	 	 	 ddeded         ded	eeee	j
        f                  d
ee	         f
 fdZ	 ddededeeeef                  deeeeeef         f         fdZ	 ddededeeeef                  deeeeeef         f         fdZedededeeeef                  ded         deeeeeef         f         f
d            Zedededeeeef                  ded         deeeeeef         f         f
d            Zdededeeeef                  dedeeeef         eeeef         f         f
dZdefdZd Z xZS )r<   r;   P   NTtimeoutsessionRequestsSessionr[   r\   r]   c                     t          t          |                               |||           || _        || _        t
          J t
          | _        d S Nr[   r\   r]   )superr<   rh   _session_timeoutr;   )rg   r   r   r[   r\   r]   r5   	__class__s          r(   rh   zRequestsClient.__init__O  s\     	nd##,,-"7 	- 	
 	
 	

  ### r*   r   r   r   r6   c                 6    |                      ||||d          S NFr   _request_internalr   s        r(   r   zRequestsClient.requestc  s,     %%C)% & 
 
 	
r*   c                 6    |                      ||||d          S NTr   r   r   s        r(   r   zRequestsClient.request_streamn  s,     %%C)$ & 
 
 	
r*   r   c                     d S r9   r$   rg   r   r   r   r   r   s         r(   r   z RequestsClient._request_internaly  	     .1Sr*   Fc                     d S r9   r$   r   s         r(   r   z RequestsClient._request_internal  s	     03sr*   c                 :   i }| j         rt          j        |d<   nd|d<   | j        r
| j        |d<   |rd|d<   t	          | j        dd           *| j        p| j                                        | j        _	        	 	  t          d| j        j	                  j        ||f||| j        d|}n$# t          $ r}t          d	|          d }~ww xY w|r|j        }	n|j        }	|j        }
n,# t"          $ r}|                     |           Y d }~nd }~ww xY w|	|
|j        fS )
NverifyFproxiesTstreamr   r   )r   datar   a  Warning: It looks like your installed version of the "requests" library is not compatible with Stripe's usage thereof. (HINT: The most likely cause is that your "requests" library is out of date. You can fix that by running "pip install -U requests".) The underlying error was: )rZ   r   ca_bundle_pathrY   r   rf   r   r;   r   r   r   r   r   	TypeErrorrawcontentrs   	Exception_handle_request_errorr   )rg   r   r   r   r   r   r5   resultr   r   rs   s              r(   r   z RequestsClient._request_internal  s    ! 	%%4F8$F8; 	, $F9 	$#F84%y$77?8!6!6!8!8 &"	*%t'9'A 		
 $" M	 	 	 	    i 34!6    ) *
 !. ,KK 	* 	* 	* &&q))))))))	*
 V^33s6   90B* )C' *
C4CCC' '
D1DDc                    t          || j        j        j                  r+d}t	          |          j        dt          |          }d}nt          || j        j        j        | j        j        j        f          r+d}t	          |          j        dt          |          }d}nt          || j        j        j	                  r+d}t	          |          j        dt          |          }d}nFd}dt	          |          j        d}t          |          r|d	t          |          z  }n|d
z  }d}t          j        |          d|dz   }t          ||          )NCould not verify Stripe's SSL certificate.  Please make sure that your network is not intercepting certificates.  If this problem persists, let us know at support@stripe.com.: FziUnexpected error communicating with Stripe.  If this problem persists, let us know at support@stripe.com.TzUnexpected error communicating with Stripe. It looks like there's probably a configuration issue locally.  If this problem persists, let us know at support@stripe.com.A  was raisedz with error message z with no error message

(Network error: )rp   )r_   r;   
exceptionsSSLErrortyperP   rS   r   ConnectionErrorRequestExceptiontextwrapfillr   rg   r   msgerrrq   s        r(   r   z$RequestsClient._handle_request_error  s    a1:;; -	!&  #1gg...A7C LL(0(8
 
 #	!& 
 #1gg...A7CLL4=3DEE 	!& 
 #1gg...A7C LL. C (,Aww'7'7'79C1vv 03q666;;// LmC   #EE <@@@@r*   c                 r    t          | j        dd            | j        j                                         d S d S )Nr   )r   rf   r   r   r   s    r(   r   zRequestsClient.close  s>    4%y$77C&,,..... DCr*   )r   NTNNr9   )rP   rQ   rR   rK   r%   r   r   r   rS   r7   rU   rh   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__r   s   @r(   r<   r<   L  s       D /3!%9=6:! !! +,! 	!
 c:#4456!  (
3! ! ! ! ! !2 	
 	
	
 	
 '#s(+,		
 
uc738,,	-	
 	
 	
 	
  	
 	
	
 	
 '#s(+,		
 
sCc**	+	
 	
 	
 	
 11 1 '#s(+,	1 dm1 
sCc**	+1 1 1 X1 33 3 '#s(+,	3 en3 
uc738,,	-3 3 3 X3=4=4 =4 '#s(+,	=4 =4 
uUCZ #wsCx'88	9=4 =4 =4 =4~3A( 3A 3A 3A 3Aj/ / / / / / /r*   r<   c                       e Zd ZdZ	 	 	 	 ddedeej                 dedee         f fd	Z		 dd
e
de
dee
e
f         dee
eee
e
f         f         fdZ	 dd
e
de
dee
e
f         deeeee
e
f         f         fdZed
e
de
dee
e
f         ded         deeeef         f
d            Zed
e
de
dee
e
f         ded         dee
eef         f
d            Zd
e
de
dee
e
f         fdZdefdZd Z xZS )r:   r-   TN7   r[   r\   deadliner]   c                     t          t          |                               |||           |rt          d          || _        || _        t          J t          | _        d S )Nr   zNo proxy support in urlfetch library. Set stripe.default_http_client to either RequestsClient, PycurlClient, or Urllib2Client instance to use a proxy.)r   r:   rh   ra   rZ   	_deadliner-   )rg   r[   r\   r  r]   r   s        r(   rh   zUrlFetchClient.__init__	  s     	nd##,,-"7 	- 	
 	
 	
  	J   "2 "### r*   r   r   r   r6   c                 6    |                      ||||d          S r   r   r   s        r(   r   zUrlFetchClient.request'  ,     %%C)% & 
 
 	
r*   c                 6    |                      ||||d          S r   r   r   s        r(   r   zUrlFetchClient.request_stream.  ,     %%C)$ & 
 
 	
r*   r   c                     d S r9   r$   r   s         r(   r   z UrlFetchClient._request_internal5  	     $'3r*   Fc                     d S r9   r$   r   s         r(   r   z UrlFetchClient._request_internal?  	      #sr*   c                 h   	 | j                             |||| j        | j        |          }n2# | j         j        $ r }|                     ||           Y d }~nd }~ww xY w|r=t          j                            t          
                    |j                            }n|j        }||j        |j        fS )N)r   r   r   validate_certificater  r   )r-   fetchrZ   r  Errorr   r   ior   rS   encoder   rs   r   )	rg   r   r   r   r   r   r   r   r   s	            r(   r   z UrlFetchClient._request_internalI  s    	/](( &*%;! ) 
 
FF }" 	/ 	/ 	/&&q#........	/  	%h&&szz&.'A'ABBGGnG*FN::s   *- AAAc                 .   t          || j        j                  rd|d}n<t          || j        j                  rd}nt          || j        j                  rd}nd}t          j        |          dz   t          |          z   dz   }t          |          )Nz6The Stripe library attempted to fetch an invalid URL (zg). This is likely due to a bug in the Stripe Python bindings. Please let us know at support@stripe.com.z0There was a problem retrieving data from Stripe.zThere was a problem receiving all of your data from Stripe.  This is likely due to a bug in Stripe. Please let us know at support@stripe.com.hUnexpected error communicating with Stripe. If this problem persists, let us know at support@stripe.com.r   r   )	r_   r-   InvalidURLErrorDownloadErrorResponseTooLargeErrorr  r  rS   r   )rg   r   r   r  s       r(   r   z$UrlFetchClient._handle_request_errorh  s    a677 	 	
 -0CC2 C 4=677 	DCC4=>?? 
	< CG 
 mC  #99CFFBSH %%%r*   c                     d S r9   r$   r   s    r(   r   zUrlFetchClient.close      r*   )TNr  Nr9   )rP   rQ   rR   rK   r   r   r7   rU   r%   rh   rS   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  s   @r(   r:   r:     sx       D "&-16:! !! 
)*! 	!
  (
3! ! ! ! ! !> LP
 

 #
.5c3h.?
	sCc**	+
 
 
 
 LP
 

 #
.5c3h.?
	wWS#X..	/
 
 
 
 '' ' c"	' dm' 
wS 	!' ' ' X' ## # c"	# en# 
sC}	# # # X#;; ; c"	; ; ; ;>&x & & & &2      r*   r:   c                   l    e Zd ZU  G d ded          ZdZee         ed<   	 	 	 dd	ed
ee	j
                 dee	         f fdZd Z	 ddeeef         deeeeeef         f         fdZ	 ddeeef         deeeeeef         f         fdZedededeeef         ded         deeeef         f
d            Zedededeeef         ded         deeeeeef         f         f
d            Zdededeeef         deeeef         eeeef         f         fdZdefdZdee         fdZd Z xZS )r>   c                   <    e Zd ZU ee         ed<   ee         ed<   dS )PycurlClient._ParsedProxyrN   rO   N)rP   rQ   rR   r   r/   rT   r$   r*   r(   _ParsedProxyr(    s4         {####$$$$$$r*   r)  F)totalr=   _parsed_proxyTNr[   r\   r]   c                 n   t          t          |                               |||           t          J t          | _        t          j                    | _        i | _        | j        rK| j        }|                                D ]1\  }}t          t          t          |                    | j        |<   0d S d S r   )r   r>   rh   r=   Curl_curlr+  rY   itemsr.   r   rS   )rg   r[   r\   r]   proxy_schemevaluer   s          r(   rh   zPycurlClient.__init__  s     	lD!!**-"7 	+ 	
 	
 	
 !!![]]
 ; 	H[F!' H H .6d36F6F-G-G"6**	H 	HH Hr*   c                     d|vri S |                     dd          d         }t          j        |          }t          d t          |                                          D                       S )Nz
rz   c              3   H   K   | ]\  }}|                                 |fV  d S r9   lowerr&   kvs      r(   	<genexpr>z-PycurlClient.parse_headers.<locals>.<genexpr>  s2      EEtq!QWWYYNEEEEEEr*   )splitemailmessage_from_stringr`   r/  )rg   r   raw_headersr   s       r(   parse_headerszPycurlClient.parse_headers  si    Ijj++A.+K88EEtG}}/B/B/D/DEEEEEEr*   r   r6   c                 6    |                      ||||d          S r   r   r   s        r(   r   zPycurlClient.request  r  r*   c                 6    |                      ||||d          S r   r   r   s        r(   r   zPycurlClient.request_stream  r  r*   r   r   r   c                     d S r9   r$   r   s         r(   r   zPycurlClient._request_internal  r  r*   c                     d S r9   r$   r   s         r(   r   zPycurlClient._request_internal  r   r*   c           	         t           j                                        }t           j                                        }| j                                         |                     |          }|r|j        r*| j                            | j        j	        |j                   |j
        r*| j                            | j        j        |j
                   |j        s|j        r4| j                            | j        j        |j        d|j                   |dk    r&| j                            | j        j        d           n|dk    rK| j                            | j        j        d           | j                            | j        j        |           n7| j                            | j        j        |                                           | j                            | j        j        |           | j                            | j        j        |j                   | j                            | j        j        |j                   | j                            | j        j        d           | j                            | j        j        d           | j                            | j        j        d           | j                            | j        j        d t9          t;          |                                                    D                        | j        r0| j                            | j        j         tB          j"                   n%| j                            | j        j#        d           	 | j        $                                 n1# | j        j%        $ r}	| &                    |	           Y d }	~	nd }	~	ww xY w|r|'                    d	           |}
n'|(                                )                    d
          }
| j        *                    | j        j+                  }| ,                    |(                                )                    d
                    }|
||fS )N:getrz   post   r   c                 "    g | ]\  }}|d |S )r   r$   r7  s      r(   r)   z2PycurlClient._request_internal.<locals>.<listcomp>  s'    GGG41aAAGGGr*   Fr   utf-8)-r   r  r   r.  reset
_get_proxyhostnamesetoptr=   PROXYport	PROXYPORTusernamepasswordPROXYUSERPWDHTTPGETPOST
POSTFIELDSCUSTOMREQUESTupperURLWRITEFUNCTIONwriteHEADERFUNCTIONNOSIGNALCONNECTTIMEOUTTIMEOUT
HTTPHEADERiterr`   r/  rZ   CAINFOr   r   SSL_VERIFYHOSTperformerrorr   seekgetvaluedecodegetinfoRESPONSE_CODEr?  )rg   r   r   r   r   r   brt   r\   r   rcontentrcodes               r(   r   zPycurlClient._request_internal  s    H8##%% 	
$$ 		~ E
!!$+"3U^DDDz E
!!$+"7DDD~  
!!K,$~~~u~~>  
 U??Jdk115555vJdk.222Jdk4i@@@@Jdk7HHH 	
$+/3///
$+3QW===
$+4hnEEE
$+.222
$+4b999
$+-r222
K"GG4W0C0C0E0E+F+FGGG	
 	
 	
 ! 	AJdk0&2GHHHHJdk8%@@@	*J    {  	* 	* 	*&&q))))))))	*  	4FF1IIIHHzz||**733H
""4;#<==$$X%6%6%8%8%?%?%H%HII''s   %M? ?N-N((N-c                 :   |j         d         | j        j        | j        j        | j        j        fv rd}d}n.|j         d         | j        j        | j        j        fv rd}d}nd}d}t          j        |          dz   |j         d         z   d	z   }t          ||
          )Nr   zCould not connect to Stripe.  Please check your internet connection and try again.  If this problem persists, you should check Stripe's service status at https://twitter.com/stripestatus, or let us know at support@stripe.com.Tr   Fr   r   rz   r   rp   )
r4   r=   E_COULDNT_CONNECTE_COULDNT_RESOLVE_HOSTE_OPERATION_TIMEOUTEDE_SSL_CACERTE_SSL_PEER_CERTIFICATEr  r  r   )rg   r   r  rq   s       r(   r   z"PycurlClient._handle_request_error  s    6!9K)K.K-
 
 
&   LLVAYK$K.
 
 

&  !LLG  !LmC  #99AF1IEK <@@@@r*   c                     | j         rY| j         }|r|                    d          d         nd }|r1|                    ||                    |dd                             S d S )NrE  r   )r+  r;  rF  )rg   r   r\   r1  s       r(   rL  zPycurlClient._get_proxy<  sj     	B&E*-7SYYs^^A&&4F Byy6!B$<)@)@AAAtr*   c                     d S r9   r$   r   s    r(   r   zPycurlClient.closeD  r%  r*   r   r9   )rP   rQ   rR   r   r)  rK   r   rT   r   r7   rU   rh   r?  r   rS   r   r%   r   r   r   r   r   r   r   r   r   r   r/   rL  r   r
  r  s   @r(   r>   r>     s        % % % % %y % % % % DL)))) "&-16:	H HH 
)*H  (
3	H H H H H H6F F F BF
 
$+CH$5
	sCc**	+
 
 
 
 BF
 
$+CH$5
	wWS#X..	/
 
 
 
 '' ' c"	' dm' 
wS 	!' ' ' X' 11 1 c"	1 en1 
sCc**	+1 1 1 X1F(F( F( c"	F( 
uS'\"Cc)::	;F( F( F( F(P!A( !A !A !A !AF+!6          r*   r>   c                       e Zd ZdZ	 	 	 ddedeej                 dee         f fdZ	 dde	d	e	d
e
e	e	f         dee	ee
e	e	f         f         fdZ	 dde	d	e	d
e
e	e	f         deeee
e	e	f         f         fdZede	d	e	d
e
e	e	f         ded         dee	eef         f
d            Zede	d	e	d
e
e	e	f         ded         deeeef         f
d            Zde	d	e	d
e
e	e	f         fdZdefdZd Z xZS )r?   zurllib.requestTNr[   r\   r]   c                 ,   t          t          |                               |||           d | _        | j        rYt          j        t          t          t          t          f         | j                            }t          j
        |          | _        d S d S r   )r   r?   rh   _openerrY   urllibrequestProxyHandlerr   r	   rS   build_opener)rg   r[   r\   r]   proxy_handlerr   s        r(   rh   zUrllib2Client.__init__K  s     	mT""++-"7 	, 	
 	
 	
 ; 	E *6T#s(^T[11 M )5mDDDLLL	E 	Er*   r   r   r   r6   c                 6    |                      ||||d          S r   r   r   s        r(   r   zUrllib2Client.request`  r  r*   c                 6    |                      ||||d          S r   r   r   s        r(   r   zUrllib2Client.request_streamg  r  r*   r   Fc                     d S r9   r$   r   s         r(   r   zUrllib2Client._request_internaln  r  r*   c                     d S r9   r$   r   s         r(   r   zUrllib2Client._request_internalx  s	     ),r*   c           	         t          |t                    r|                    d          }t          j        ||t          t          t          t          f         |                    }dvr
fd|_        	 | j        r| j        	                    |          nt          j
        |          }|r|}n|                                }|j        }	t          |                                          }n# t          j        $ rF}
|
j        }	|
                                }t          |
                                          }Y d }
~
n;d }
~
wt          j        t$          f$ r}
|                     |
           Y d }
~
nd }
~
ww xY wt          d t)          t          |                                                    D                       }||	|fS )NrJ  )rF  rG  c                  ,                                      S r9   )rY  )r   s   r(   <lambda>z1Urllib2Client._request_internal.<locals>.<lambda>  s    V\\^^ r*   c              3   H   K   | ]\  }}|                                 |fV  d S r9   r5  r7  s      r(   r:  z2Urllib2Client._request_internal.<locals>.<genexpr>  s2      IITQ17799a.IIIIIIr*   )r_   rS   r  r{  Requestr   r   
get_methodrz  openurlopenreadcoder`   infourlliberror	HTTPErrorURLErrorra   r   rb  r/  )rg   r   r   r   r   r   reqri   rm  rn  r   lhs    `          r(   r   zUrllib2Client._request_internal  s    i%% 	2!((11I#DS!97CC
 
 ((3333CN	*
 <0!!#&&&"*3//   +##==??ME8==??++GG$ 	% 	% 	%FEvvxxH16688nnGGGGGG$j1 	* 	* 	*&&q))))))))	*IIT$w--2E2E2G2G-H-HIIIII""s%   6A6C- -E5<<D==E5E00E5c                 x    d}t          j        |          dz   t          |          z   dz   }t          |          )Nr   r   r   )r  r  rS   r   )rg   r   r  s      r(   r   z#Urllib2Client._handle_request_error  sB    K 	 mC  #99CFFBSH %%%r*   c                     d S r9   r$   r   s    r(   r   zUrllib2Client.close  r%  r*   r   r9   )rP   rQ   rR   rK   r   r   r7   rU   rh   rS   r   r   r%   r   r   r   r   r   r   r   r   r   r   r
  r  s   @r(   r?   r?   H  sv       D "&-16:	E EE 
)*E  (
3	E E E E E E, LP
 

 #
.5c3h.?
	sCc**	+
 
 
 
 LP
 

 #
.5c3h.?
	|S'#s("33	4
 
 
 
 ## # c"	# en# 
sC}	# # # X# ,, , c"	, dm, 
|S#%	&, , , X,)#)# )# c"	)# )# )# )#V&( & & & &      r*   r?   c                       e Zd ZU dZed         ed<   	 	 ddeeedf                  f fdZd	 Z	d
e
de
dee
e
f         fdZ	 dd
e
de
dee
e
f         deeeee
e
f         f         fdZ	 dd
e
de
dee
e
f         deeeee
e
f         f         fdZdefdZ	 dd
e
de
dee
e
f         deee         eee
e
f         f         fdZ	 dd
e
de
dee
e
f         deee         eee
e
f         f         fdZd Zd Z xZS )rE   rD   HTTPXClientType_clientr   Fr   HTTPXTimeoutc                     t          t          |           j        di | t          t	          d          t
          t	          d          t          | _        t
          | _        i }| j        rt          j        |d<   nd|d<   t          j	        di || _
        d | _        |rt          j        di || _        || _        d S )NzPUnexpected: tried to initialize HTTPXClient but the httpx module is not present.zPUnexpected: tried to initialize HTTPXClient but the anyio module is not present.r   Fr$   )r   rE   rh   rD   ImportErroranyiorZ   r   r   AsyncClient_client_asyncr  r   r   )rg   r   allow_sync_methodsr5   r   s       r(   rh   zHTTPXClient.__init__  s     	*k4  )33F333=b   =b   

! 	%%4F8$F8".8888 	2 <11&11DLr*   c                 6    | j                             |          S r9   )r  r   r   s     r(   r   zHTTPXClient.sleep_async  s    z%%%r*   r   r   r   c                 d    i }| j         r
| j         |d<   | j        r
| j        |d<   ||f||pi d|gS )Nr   r   )r   r   )rY   r   )rg   r   r   r   r   r5   s         r(   _get_request_args_kwargsz$HTTPXClient._get_request_args_kwargs  sZ     ; 	, $F9= 	. $F9SMbCCFC
 	
r*   Nr6   c                    | j         t          d          |                     ||||          \  }}	  | j         j        |i |}n,# t          $ r}|                     |           Y d }~nd }~ww xY w|j        }	|j        }
|j        }|	|
|fS )NzqStripe: HTTPXClient was initialized with allow_sync_methods=False, so it cannot be used for synchronous requests.)	r  RuntimeErrorr  r   r   r   r   rs   r   rg   r   r   r   r   r4   r5   ri   r   r   rs   response_headerss               r(   r   zHTTPXClient.request  s     <A   44C)
 
f	*+t|+T<V<<HH 	* 	* 	*&&q))))))))	* "*#+%555s   A 
A/A**A/c                    K   |                      ||||          \  }}	  | j        j        |i | d {V }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|j        }	|j        }
|j        }|	|
|fS r9   )r  r  r   r   r   r   rs   r   r  s               r(   r   zHTTPXClient.request_async
  s       44C)
 
f	*7T/7HHHHHHHHHHH 	* 	* 	*&&q))))))))	* "*#+%555   8 
A!AA!c                     d}dt          |          j        d}d}t          j        |          d|dz   }t	          ||          Nr   r   r   Tr   r   rp   r  rP   r  r  r   r  s        r(   r   z!HTTPXClient._handle_request_error  ^    C 	 $(77#3#3#35mC   #EE <@@@@r*   c                 f   | j         t          d          |                     ||||          \  }}	 | j                              | j        j        |i |d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                                }	|j	        }
|j
        }|	|
|fS )NztStripe: HTTPXClient was not initialized with allow_sync_methods=True, so it cannot be used for synchronous requests.Tr   r   )r  r  r  sendr  build_requestr   r   
iter_bytesrs   r   rg   r   r   r   r   r4   r5   ri   r   r   rs   s              r(   r   zHTTPXClient.request_stream)  s     <A   44C)
 
f	*|((8*8$I&II )  HH  	* 	* 	*&&q))))))))	*%%''*"W,,s   ,A   
B	*BB	c                 J  K   |                      ||||          \  }}	 | j                             | j        j        |i |d           d {V }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                                }	|j        }
|j        }|	|
|fS )NTr  )	r  r  r  r  r   r   aiter_bytesrs   r   r  s              r(   r   z HTTPXClient.request_stream_asyncA  s       44C)
 
f	*!/448*8$I&II 5        HH  	* 	* 	*&&q))))))))	*&&((*"W,,s   2A 
A;A66A;c                 J    | j         | j                                          d S d S r9   )r  r   r   s    r(   r   zHTTPXClient.closeT  s,    <#L      $#r*   c                 H   K   | j                                          d {V  d S r9   )r  acloser   s    r(   r   zHTTPXClient.close_asyncX  s3       '')))))))))))r*   )r   Fr9   )rP   rQ   rR   rK   r   rT   r   r   rh   r   rS   r   r  r   r   r%   r   r   r   r   r
   r   r   r   r   r   r
  r  s   @r(   rE   rE     s        D'(((( ;=    %~ 567           B& & &

 #
.5c3h.?
 
 
 
( 6 66 6 c"	6 
uc738,,	-6 6 6 6< 6 66 6 c"	6 
uc738,,	-6 6 6 6(	A( 	A 	A 	A 	A LP- -- #-.5c3h.?-	xWS#X%66	7- - - -2 LP- -- #-.5c3h.?-	}U#S'#s(*;;	<- - - -&! ! !* * * * * * *r*   rE   c                       e Zd ZdZ	 ddeeedf                  f fdZed             Z	d Z
deeeeeef         f         fd	Zd
ededeeef         fdZ	 dd
ededeeef         deeeeeef         f         fdZdefdZdeee         eeeef         f         fdZ	 dd
ededeeef         dedeeeef         f         fdZd Zd Z xZS )rG   rF   r   r   AIOHTTPTimeoutc                      t          t          |           j        di | t          t	          d          || _        d | _        d S )NzTUnexpected: tried to initialize AIOHTTPClient but the aiohttp module is not present.r$   )r   rG   rh   rF   r  r   _cached_session)rg   r   r5   r   s      r(   rh   zAIOHTTPClient.__init___  sY     	,mT""+55f555?f    #r*   c                    t           J | j        oi }| j        r8t          j        t
          j                  }t          j        |          |d<   nt          j        d          |d<   t          j        di || _        | j        S )N)cafile)ssl	connectorF)
verify_sslr$   )	rF   r  rZ   r  create_default_contextr   r   TCPConnectorClientSession)rg   r5   ssl_contexts      r(   r   zAIOHTTPClient._sessionl  s    """'F% M!8!0   '.&:{&K&K&K{##&-&:e&L&L&L{##*#8#B#B6#B#BD ##r*   c                 *    t          j        |          S r9   )asyncior   r   s     r(   r   zAIOHTTPClient.sleep_async~  s    }T"""r*   r6   c                      t          d          Nz4AIOHTTPClient does not support synchronous requests.r   r   s    r(   r   zAIOHTTPClient.request      !B
 
 	
r*   r   r   r   c                     ||f}i }| j         r;| j         d         | j         d         k    rt          d          | j         d         |d<   | j        r
| j        |d<   ||d<   ||d<   ||fS )NrN   rO   zDAIOHTTPClient does not support different proxies for HTTP and HTTPS.r\   r   r   r   )rY   ra   r   )rg   r   r   r   r   r4   r5   s          r(   r  z&AIOHTTPClient._get_request_args_kwargs  s     }; 	3{6"dk'&::: Z   #k'2F7O= 	. $F9#y"vV|r*   Nc                    K   |                      ||||           d {V \  }}}|                                 d {V ||fS )N)r   )r   r  )rg   r   r   r   r   r   rs   r  s           r(   r   zAIOHTTPClient.request_async  s       ++CI , 
 
 
 
 
 
 
 
		

 llnn$$$$$${4DDDr*   c                     d}dt          |          j        d}d}t          j        |          d|dz   }t	          ||          r  r  r  s        r(   r   z#AIOHTTPClient._handle_request_error  r  r*   c                      t          d          r  r   r   s    r(   r   zAIOHTTPClient.request_stream  r  r*   AIOHTTPStreamReaderc                    K   |                      ||||          \  }}	  | j        j        |i | d {V }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|j        }	|j        }
|j        }|	|
|fS r9   )r  r   r   r   r   r   statusr   r  s               r(   r   z"AIOHTTPClient.request_stream_async  s       44C)
 
f	*2T]2DCFCCCCCCCCHH 	* 	* 	*&&q))))))))	* "o#+%555r  c                     d S r9   r$   r   s    r(   r   zAIOHTTPClient.close  r%  r*   c                 H   K   | j                                          d {V  d S r9   )r   r   r   s    r(   r   zAIOHTTPClient.close_async  s2      m!!###########r*   )r   r9   )rP   rQ   rR   rK   r   r   r   rh   propertyr   r   r   r   r%   r   rS   r   r  r   r   r   r
   r   r   r   r   r
  r  s   @r(   rG   rG   \  s1       D CE$ $e-=&= >?$ $ $ $ $ $ $ $ X$"# # #
uc738+<<= 
 
 
 

 #.5c3h.?   . E EE E c"	E 
uc738,,	-E E E E"	A( 	A 	A 	A 	A
huosGCH<M&M N 
 
 
 
 LP6 66 #6.5c3h.?6	$c738+<<	=6 6 6 6   $ $ $ $ $ $ $r*   rG   c                        e Zd Z fdZedefd            Z	 ddededeeef         de	e
eeeef         f         fdZ	 ddededeeef         fd	Zd
 Z xZS )rH   c                 H     t          t          |           j        di | d S )Nr$   )r   rH   rh   )rg   r5   r   s     r(   rh   z!NoImportFoundAsyncClient.__init__  s-    6&--6@@@@@@@r*   r6   c                       t          d          )NzImport httpx not found. To make async http requests,You must either install httpx or define your ownasync http client by subclassing stripe.HTTPClientand setting stripe.default_http_client to an instance of it.)r  r$   r*   r(   raise_async_client_import_errorz8NoImportFoundAsyncClient.raise_async_client_import_error  s    O
 
 	
r*   Nr   r   r   c                 2   K   |                                   d S r9   r  r   s        r(   r   z&NoImportFoundAsyncClient.request_async          	,,.....r*   c                 2   K   |                                   d S r9   r  r   s        r(   r   z-NoImportFoundAsyncClient.request_stream_async  r  r*   c                 2   K   |                                   d S r9   r  r   s    r(   r   z$NoImportFoundAsyncClient.close_async  s      ,,.....r*   r9   )rP   rQ   rR   rh   staticmethodr   r  rS   r   r   r   r%   r   r   r   r
  r  s   @r(   rH   rH     s       A A A A A 
U 
 
 
 \
 LP/ // #/.5c3h.?/	uc738,,	-/ / / / LP/ // #/.5c3h.?/ / / /
/ / / / / / /r*   rH   )Zr  r   sysr  r<  r2   r   rd   r   r  r  http.clientr   r   r   stripe._request_metricsr   stripe._errorr   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   typing_extensionsr   r   r   r   r   urllib.requestr   r{  urllib.errorrf  r  r  r=   rD   r  r   r  r   r  rF   r   r  r   r  r;   r   r   rS   rT   __version__r   r%   r;  r    r!   r"   stderrr\  r   google.appengine.apir-   urllib.parser.   r/   r3   rB   rI   objectr7   r<   r:   r>   r?   rE   rG   rH   r$   r*   r(   <module>r     s5          



           



 $ $ $ $ $ $        2 2 2 2 2 2 , , , , , ,                                          	******&&&&&&& 	 	 	D	MMMM   FFFLLLLLL------///////   EEEENNN777777;;;;;;;   GGGOOO333333&








BBw}}S/A/ABBBue
 5% 9,,J 6=WW?	 	 	 H        HHH8-------   HHH / . . . . . . .* * *
!3 
!# 
!, 
! 
! 
! 
!!# ! ! ! ! ! !{
 {
 {
 {
 {
 {
 {
 {
|w/ w/ w/ w/ w/Z w/ w/ w/t| | | | |Z | | |~@ @ @ @ @: @ @ @Fn n n n nJ n n nb`* `* `* `* `** `* `* `*Fq$ q$ q$ q$ q$J q$ q$ q$h/ / / / /z / / / / /s~   5B B
	B
B BB!B6 6	CCC C! C!%
E# 0>E E E #E-,E-1E8 8FF