
    gCE                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
 d dlmc mZ d dlmZmZmZmZmZmZmZmZ d dlmZ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& d dlm'Z'm(Z( d d	l)m*Z* ejV                  rd d
l,m-Z- ee.e	e/e0e.f   f   Z1e	ee2e.f   Z3ee.e	e2e/e0e.ef   f   Z4e	ee.e	e/e0e.f   f   e.f   Z5 G d d      Z6 G d de      Z7dedefdZ8 G d d      Z9ddejt                  de/fdZ;dede/fdZ<y)    N)Path)AnyDictListOptionalUnioncast)ClientCertificateFilePayload	FormFieldHeadersHttpCredentialsProxySettingsServerFilePayloadStorageState)ChannelOwnerfrom_channel)is_target_closed_error)	Error	NameValueTargetClosedErrorasync_readfileasync_writefileis_file_payloadlocals_to_paramsobject_to_arrayto_impl)serialize_headersto_client_certificates_protocol)Tracing)
Playwrightc                   t    e Zd ZddZ	 	 	 	 	 	 	 	 	 ddedeeef   dededed	ed
e	de
eeef   dee   ddfdZy)
APIRequestreturnNc                 j    || _         |j                  | _        |j                  j                  | _        y N)
playwright_loop_connection_dispatcher_fiber)selfr'   s     L/var/www/openai/venv/lib/python3.12/site-packages/playwright/_impl/_fetch.py__init__zAPIRequest.__init__<   s*    $%%
!+!7!7!I!I    baseURLextraHTTPHeadershttpCredentialsignoreHTTPSErrorsproxy	userAgenttimeoutstorageStateclientCertificatesAPIRequestContextc
           	        K   t        t                     }
d|
v rN|
d   }t        |t              s9|r7t	        j
                  t        |       d {   j                               |
d<   d|
v rt        |
d         |
d<   t        |
j                  d             d {   |
d<   t        t        t        | j                  j                  j!                  d|
       d {               }|S 7 7 P7 w)Nr6   r0   r7   
newRequest)r   locals
isinstancedictjsonloadsr   decoder   r   getr	   r8   r   r'   _channelsend)r+   r/   r0   r1   r2   r3   r4   r5   r6   r7   paramsstorage_statecontexts                r,   new_contextzAPIRequest.new_contextA   s      "&(+V#">2MmT2})-)-88@@B*~& '):6BT;U)VF%&-LJJ+,.
 (
#$ t77<<\6RRS
  9(

 Ss7   AC/C)AC/C+?C/C-C/+C/-C/)r'   r!   r$   N)	NNNNNNNNN)__name__
__module____qualname__r-   strr   r   boolr   floatr   r   r   r   r
   rG    r.   r,   r#   r#   ;   s    J +/+/"&#7;6: sCx. )	
      L#t34 !!23 
r.   r#   c                       e Zd Zdededededdf
 fdZd#deddfd	Z	 	 	 	 	 	 	 	 	 	 d$d
edede	de
dedededededededdfdZ	 	 	 	 	 	 	 	 	 	 d$d
edede	de
dedededededededdfdZ	 	 	 	 	 	 	 	 	 	 d$d
edede	de
dedededededededdfdZ	 	 	 	 	 	 	 	 	 	 d$d
edede	de
dedeeeeeeeef   f   dedededededdfdZ	 	 	 	 	 	 	 	 	 	 d$d
edede	de
dedeeeeeeeef   f   dedededededdfdZ	 	 	 	 	 	 	 	 	 	 d$d
edede	de
dedeeeeeeeef   f   dedededededdfdZ	 	 	 	 	 	 	 	 	 	 	 d%deeej4                  f   dedede	de
dedeeeeeeeef   f   dedededededdfdZ	 	 	 	 	 	 	 	 	 	 	 d%deej4                     d
ee   dede	de
dededeeeeeeeef   f   dedededededdfd Z	 d#d!eej>                  ef   de fd"Z! xZ"S )&r8   parenttypeguidinitializerr$   Nc                 ^    t         |   ||||       t        |d         | _        d | _        y )Ntracing)superr-   r   _tracing_close_reason)r+   rP   rQ   rR   rS   	__class__s        r,   r-   zAPIRequestContext.__init__a   s1     	t[9!-k).D!E,0r.   reasonc                    K   || _         	 | j                  j                  dd|i       d {    | j
                  j                          y 7 # t        $ r}t	        |      rY d }~y |d }~ww xY ww)NdisposerZ   )rX   rB   rC   r   r   rW   _reset_stack_counter)r+   rZ   es      r,   r\   zAPIRequestContext.disposeh   si     #	--$$Y60BCCC
 	**, D 	%a(G	sC   A1!A AA A1A 	A.A)"A1'A))A..A1urlrD   headersdataform	multipartr5   failOnStatusCoder2   maxRedirects
maxRetriesAPIResponsec                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NDELETEmethodrD   r`   ra   rb   rc   r5   rd   r2   re   rf   fetchr+   r_   rD   r`   ra   rb   rc   r5   rd   r2   re   rf   s               r,   deletezAPIRequestContext.deleter   sL      ZZ-/%!   
 
 	
 
   !*(*c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NHEADrj   rl   rn   s               r,   headzAPIRequestContext.head   L      ZZ-/%!   
 
 	
 
rp   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NGETrj   rl   rn   s               r,   rA   zAPIRequestContext.get   L      ZZ-/%!   
 
 	
 
rp   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NPATCHrj   rl   rn   s               r,   patchzAPIRequestContext.patch   sL      ZZ-/%!   
 
 	
 
rp   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NPUTrj   rl   rn   s               r,   putzAPIRequestContext.put   rw   rp   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NPOSTrj   rl   rn   s               r,   postzAPIRequestContext.post  rt   rp   urlOrRequestrk   c                 B  K   t        |t              r|nd }t        t        |      t        j                        r#t        t        j                  t        |            nd }|st        |t              sJ d       | j                  ||||||||||	|
||       d {   S 7 w)Nz3First argument must be either URL string or Request)r<   rK   r   networkRequestr	   _inner_fetch)r+   r   rD   rk   r`   ra   rb   rc   r5   rd   r2   re   rf   r_   requests                  r,   rm   zAPIRequestContext.fetch   s      )s;l ',/A ',"78 	
 *#
 	A@	A 
 &&
 
 	
 
s   BBBBr   c                   K   | j                   rt        | j                         |rdnd|rdndz   |rdndz   dk  sJ d       ||dk\  sJ d       ||dk\  sJ d       |xs |r|j                  n|}|xs |r|j                  nd}|xs |r|j                  nd }|rt        |      nd }d }d }d }d }|t        |t              rAt        |      r$t        |      r|nt        j                  |      }n)|j                         }nt        |t              r|}nt        |t        t        t         t"        f      rt        j                  |      }nt%        dt'        |             |rt)        |      }n|rg }|j+                         D ]  \  }}t-        |      rTt/        t0        |      }t        |d   t              sJ d	| d
       |j3                  t5        |t7        |                   et        |t              sv|j3                  t5        ||              |||||r|j8                  nd }|r#t;        j<                  |      j?                         nd }| j@                  jC                  d|t        |t              rt)        |      nd t        |t              r|nd |||||||	|
|||d       d {   }tE        | |      S 7 w)N   r   z:Only one of 'data', 'form' or 'multipart' can be specifiedz4'max_redirects' must be greater than or equal to '0'z2'max_retries' must be greater than or equal to '0'rv   zUnsupported 'data' type: bufferz Unexpected buffer type of 'data.')namefile)r   valuerm   )r_   rD   encodedParamsrk   r`   postDatajsonDataformDatamultipartDatar5   rd   r2   re   rf   )#rX   r   r_   rk   r`   r   r<   rK   is_json_content_typeis_json_parsabler>   dumpsencodebytesr=   listintrL   r   rQ   r   itemsr   r	   r   appendr   file_payload_to_jsonpost_data_bufferbase64	b64encoder@   rB   rC   rg   )r+   r   r_   rk   r`   ra   rD   rb   rc   r5   rd   r2   re   rf   headers_objserialized_headers	json_data	form_datamultipart_datar   r   r   payload	post_dataresponses                            r,   r   zAPIRequestContext._inner_fetchH  s      #D$6$677QAt!3Iq1M 	ML	M   LA$5	BA	B5 */	@?	@16Wgkk#AgGNN5GW'//$?J.{;PT	/3	48,0$$'(:;(8(>DJJtDTI'+{{}$D%(#' D4sD"9: JJt,	7T
|DEE'-IN(0e"5)";6G%)5 B9$qAB  #))!t2Fw2OP  s+")))U*KL  1 $!!&;Bw77;KF-.557QU 	 ++5?5M/&1SW+5fc+B -%%%!/"$4%6 ,(
 
& 4**'
s   G:K=B8K5K6Kpathc                    K   | j                   j                  d       d {   }|r't        |t        j                  |             d {    |S 7 /7 w)Nr6   )rB   send_return_as_dictr   r>   r   )r+   r   results      r,   rE   zAPIRequestContext.storage_state  sJ      }}88HH!$

6(:;;; I;s!   AA(A
AAAr&   )
NNNNNNNNNN)NNNNNNNNNNN)#rH   rI   rJ   r   rK   r   r-   r\   
ParamsTyper   DataTypeFormTypeMultipartTyperM   rL   r   ro   rs   rA   r   r   r   rz   r}   r   r   r   rm   r   r   pathlibr   r   rE   __classcell__)rY   s   @r,   r8   r8   `   s   1"1*-1581GK1	1-C -4 - "#'!%"& 

 
 	

 
 
 !
 
 
  
 
 
 

@ "#'!%"& 

 
 	

 
 
 !
 
 
  
 
 
 

@ "#'!%"& 

 
 	

 
 
 !
 
 
  
 
 
 

@ "LP!%"& 

 
 	

 
 
 U5$sK#GHHI
 
 
  
 
 
 

@ "LP!%"& 

 
 	

 
 
 U5$sK#GHHI
 
 
  
 
 
 

@ "LP!%"& 

 
 	

 
 
 U5$sK#GHHI
 
 
  
 
 
 

@ "LP!%"& &
C01&
 &
 	&

 &
 &
 &
 U5$sK#GHHI&
 &
 &
  &
 &
 &
 
&
X !LP!%"& ^+'//*^+ c]^+ 	^+
 ^+ ^+ ^+ ^+ U5$sK#GHHI^+ ^+ ^+  ^+ ^+ ^+ 
^+B 04',,+,	r.   r8   r   r$   c                 r    t        | d   | d   t        j                  | d         j                               S )Nr   mimeTyper   )r   r   r   )r   r   r   r@   )r   s    r,   r   r     s:    V_$ 1299; r.   c                      e Zd ZdededdfdZdefdZede	fd       Z
edefd       Zedefd	       Zedefd
       Zedefd       Zedej$                  fd       ZdefdZdefdZdefdZddZedefd       Zdee   fdZy)rg   rF   rS   r$   Nc                     |j                   | _         |j                  j                  | _        || _        || _        t        j                  |d         | _        y )Nr`   )r(   r)   r*   _request_initializerr   
RawHeaders_headers)r+   rF   rS   s      r,   r-   zAPIResponse.__init__  sG    ]]
!(!4!4!F!F'**;y+ABr.   c                 V    d| j                   d| j                  d| j                  dS )Nz<APIResponse url=z status=z status_text=>)r_   statusstatus_textr+   s    r,   __repr__zAPIResponse.__repr__  s.    "488,ht{{o]SWScScRffghhr.   c                 B    | j                   dk\  xr | j                   dk  S )N   i+  )r   r   s    r,   okzAPIResponse.ok  s    {{c!8dkkS&88r.   c                      | j                   d   S )Nr_   r   r   s    r,   r_   zAPIResponse.url  s      ''r.   c                      | j                   d   S )Nr   r   r   s    r,   r   zAPIResponse.status  s      **r.   c                      | j                   d   S )N
statusTextr   r   s    r,   r   zAPIResponse.status_text  s      ..r.   c                 6    | j                   j                         S r&   )r   r`   r   s    r,   r`   zAPIResponse.headers  s    }}$$&&r.   c                 6    | j                   j                         S r&   )r   headers_arrayr   s    r,   r   zAPIResponse.headers_array  s    }}**,,r.   c                    K   	 | j                   j                  j                  dd| j                  i       d {   }|t	        d      t        j                  |d         S 7 )# t        $ r}t        |      rt	        d      |d }~ww xY ww)NfetchResponseBodyfetchUidzResponse has been disposedbinary)r   rB   r   
_fetch_uidr   r   	b64decoder   )r+   r   excs      r,   bodyzAPIResponse.body  s     	==11EE# F ~899##F8$455  	%c*899I	s8   B5A% A#(A% "B#A% %	B.BBBc                 ^   K   | j                          d {   }|j                         S 7 wr&   )r   r@   r+   contents     r,   textzAPIResponse.text  s&     		#~~ $s   -+-c                 h   K   | j                          d {   }t        j                  |      S 7 wr&   )r   r>   r?   r   s     r,   r>   zAPIResponse.json  s(     		#zz'"" $s   202c                    K   | j                   j                  j                  dd| j                  i       d {    y 7 w)NdisposeAPIResponser   r   rB   rC   r   r   s    r,   r\   zAPIResponse.dispose  s9     mm$$)) DOO
 	
 	
s   6A >A c                      | j                   d   S )Nr   r   r   s    r,   r   zAPIResponse._fetch_uid  s      ,,r.   c                    K   | j                   j                  j                  dd| j                  i       d {   S 7 w)NfetchLogr   r   r   s    r,   
_fetch_logzAPIResponse._fetch_log   s>     ]]++00DOO
 
 	
 
s   6?=?)r$   N)rH   rI   rJ   r8   r   r-   rK   r   propertyrL   r   r_   r   r   r   r   r`   r   HeadersArrayr   r   r   r   r   r>   r\   r   r   r   rN   r.   r,   rg   rg     s+   C 1 C C Ci# i 9D 9 9 (S ( ( + + + /S / / ' ' ' -w33 - -E   C  #C #
 -C - -
$s) 
r.   rg   r`   c                 T    | sy| D ]   }|d   dk(  s|d   j                  d      c S  y)NFr   zContent-Typer   zapplication/json)
startswith)r`   headers     r,   r   r   	  s9    &>^+'?--.@AA  r.   r   c                     t        | t              sy	 t        j                  |        y# t        j                  $ r Y yw xY w)NFT)r<   rK   r>   r?   JSONDecodeError)r   s    r,   r   r     s;    eS!

5 s   ) ??r&   )=r   r>   r   typingr   r   r   r   r   r   r	   playwright._impl._network_impl_networkr    playwright._impl._api_structuresr
   r   r   r   r   r   r   r   playwright._impl._connectionr   r   playwright._impl._errorsr   playwright._impl._helperr   r   r   r   r   r   r   r   r   r   r   playwright._impl._tracingr    TYPE_CHECKINGplaywright._impl._playwrightr!   rK   rL   rM   r   r   r   r   r   r#   r8   r   rg   r   r   r   rN   r.   r,   <module>r      s6        9 9 + +	 	 	 D ;
 
 
 Y -	7 U4+,,-eS!S%tUC DEEF4U4#3445s:;
" "JN Nb
+ 2C M
 M
`'"6"6 $ C D r.   