
    iG                     6   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&m'Z' d dlm(Z(m)Z) d d	l*m+Z+ ej,        rd d
l-m.Z. ee/e	e0e1e/f         f         Z2e	ee3e/f         Z4ee/e	e3e0e1e/ef         f         Z5e	ee/e	e0e1e/f         f         e/f         Z6 G d d          Z7 G d de          Z8dedefdZ9 G d d          Z:ddej;        de0fdZ<dede0fdZ=dS )    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TimeoutSettingsasync_readfileasync_writefileis_file_payloadlocals_to_paramsobject_to_arrayto_impl)serialize_headersto_client_certificates_protocol)Tracing)
Playwrightc                       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ededdfdZdS )
APIRequest
playwrightr"   returnNc                 N    || _         |j        | _        |j        j        | _        d S N)r%   _loop_connection_dispatcher_fiber)selfr%   s     W/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/playwright/_impl/_fetch.py__init__zAPIRequest.__init__=   s'    $%
!+!7!I    baseURLextraHTTPHeadershttpCredentialsignoreHTTPSErrorsproxy	userAgenttimeoutstorageStateclientCertificatesfailOnStatusCodemaxRedirectsAPIRequestContextc           
      N  K   t          t                                }d|v r[|d         }t          |t                    s>|r<t	          j        t          |           d {V                                           |d<   d|v rt          |d                   |d<   t          |
                    d                     d {V |d<   t          t          t          | j        j                            dd |           d {V                     }|j                            |           |S )Nr7   r1   r8   
newRequest)r   locals
isinstancedictjsonloadsr   decoder   r    getr	   r;   r   r%   _channelsend_timeout_settingsset_default_timeout)r,   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   paramsstorage_statecontexts                  r-   new_contextzAPIRequest.new_contextB   sZ      "&((++V##">2MmT22 } )-)-88888888@@BB* *~& ''):6BT;U)V)VF%&-LJJ+,,.
 .
 (
 (
 (
 (
 (
 (
#$ o.33L$OOOOOOOO 
 
 	!55g>>>r/   )r%   r"   r&   NNNNNNNNNNNN)__name__
__module____qualname__r.   strr   r   boolr   floatr   r   r   r   r
   intrL    r/   r-   r$   r$   <   s        J J J 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j        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j                 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de fd#Z! xZ"S )(r;   parenttypeguidinitializerr&   Nc                     t                                          ||||           t          |d                   | _        d | _        t          d           | _        d S )Ntracing)superr.   r   _tracing_close_reasonr   rG   )r,   rW   rX   rY   rZ   	__class__s        r-   r.   zAPIRequestContext.__init__g   sU     	t[999!-k).D!E!E,0!0!6!6r/   reasonc                    K   || _         	 | j                            dd d|i           d {V  n)# t          $ r}t	          |          rY d }~d S |d }~ww xY w| j                                         d S )Ndisposera   )r_   rE   rF   r   r   r^   _reset_stack_counter)r,   ra   es      r-   rc   zAPIRequestContext.disposeo   s      #	-$$Yx6HIIIIIIIIII 	 	 	%a(( G	 	**,,,,,s   $0 
AAAAurlrI   headersdataform	multipartr6   r9   r3   r:   
maxRetriesAPIResponsec                 T   K   |                      |d||||||||	|
|           d {V S )NDELETEmethodrI   rg   rh   ri   rj   r6   r9   r3   r:   rk   fetchr,   rf   rI   rg   rh   ri   rj   r6   r9   r3   r:   rk   s               r-   deletezAPIRequestContext.deletey   se       ZZ-/%!   
 
 
 
 
 
 
 
 	
r/   c                 T   K   |                      |d||||||||	|
|           d {V S )NHEADro   rq   rs   s               r-   headzAPIRequestContext.head   e       ZZ-/%!   
 
 
 
 
 
 
 
 	
r/   c                 T   K   |                      |d||||||||	|
|           d {V S )NGETro   rq   rs   s               r-   rD   zAPIRequestContext.get   e       ZZ-/%!   
 
 
 
 
 
 
 
 	
r/   c                 T   K   |                      |d||||||||	|
|           d {V S )NPATCHro   rq   rs   s               r-   patchzAPIRequestContext.patch   se       ZZ-/%!   
 
 
 
 
 
 
 
 	
r/   c                 T   K   |                      |d||||||||	|
|           d {V S )NPUTro   rq   rs   s               r-   putzAPIRequestContext.put   r{   r/   c                 T   K   |                      |d||||||||	|
|           d {V S )NPOSTro   rq   rs   s               r-   postzAPIRequestContext.post
  rx   r/   urlOrRequestrp   c                 h  K   t          |t                    r|nd }t          t          |          t          j                  r't          t          j        t          |                    nd }|st          |t                    s
J d            |                     ||||||||||	|
||           d {V S )Nz3First argument must be either URL string or Request)r?   rQ   r   networkRequestr	   _inner_fetch)r,   r   rI   rp   rg   rh   ri   rj   r6   r9   r3   r:   rk   rf   requests                  r-   rr   zAPIRequestContext.fetch'  s       )s;;Ell ',//AAD',"7"7888 	
  	A*#
 
 	A 	A@	A 	A 
 &&
 
 
 
 
 
 
 
 	
r/   r   c                 T  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            |p
|r|j        n|}|p
|r|j        nd}|p
|r|j        nd }|rt          |          nd }d }d }d }d }|t          |t                    rLt          |          r't          |          r|nt          j        |          }nt|                                }n^t          |t                    r|}nEt          |t          t          t           t"          f          rt          j        |          }nt%          dt'          |                     |rt)          |          }n|rg }|                                D ]\  }}t-          |          rpt/          t0          |          }t          |d         t                    sJ d	| d
            |                    t5          |t7          |                               t          |t                    r$|                    t5          ||                     |||||r|j        nd }|r&t;          j        |                                          nd }| j         !                    d| j"        j#        ||	t          |t                    rt)          |          nd t          |t                    r|nd |||||||
|||d           d {V }tI          | |          S )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'rz   zUnsupported 'data' type: bufferz Unexpected buffer type of 'data.')namefile)r   valuerr   )rf   r6   rI   encodedParamsrp   rg   postDatajsonDataformDatamultipartDatar9   r3   r:   rk   )%r_   r   rf   rp   rg   r   r?   rQ   is_json_content_typeis_json_parsablerA   dumpsencodebytesr@   listrT   rR   r   rX   r   itemsr   r	   r   appendr   file_payload_to_jsonpost_data_bufferbase64	b64encoderC   rE   rF   rG   r6   rl   )r,   r   rf   rp   rg   rh   rI   ri   rj   r6   r9   r3   r:   rk   headers_objserialized_headers	json_data	form_datamultipart_datar   r   r   payload	post_dataresponses                            r-   r   zAPIRequestContext._inner_fetchO  s        	8#D$6777QQAt"2!!3I7Lqq1M  L    LA$5$5$5A %6$55 *///? #2/16W5gkk#Ag@GNN5GW"F'//$?JT.{;;;PT	/3	48,0$$$ 
F'(:;; 5(8(>(> TDJtDTDTII'+{{}}$$D%(( F#'  D4sD"9:: F Jt,,		DT

DDEEE 	M'--II 	MN(00 
M 
Me"5)) 	M";66G%)5  B BA$AAAB B  #))!t2Fw2O2OPPP     s++ M")))U*K*K*KLLL$!!&;BLw77;KUF-..55777QU 	 ++"*"5?5M5MW/&111SW+5fc+B+B!L -%%%!/$4%6 ,( 
 
 
 
 
 
 
 
( 4***r/   path	indexedDBc                    K   | j                             dd d|i           d {V }|r(t          |t          j        |                     d {V  |S )Nr7   r   )rE   send_return_as_dictr   rA   r   )r,   r   r   results       r-   rJ   zAPIRequestContext.storage_state  s      
 }88D;	":
 
 
 
 
 
 
 
  	<!$
6(:(:;;;;;;;;;r/   r(   )
NNNNNNNNNNrM   )NN)#rN   rO   rP   r   rQ   r   r.   rc   
ParamsTyper   DataTypeFormTypeMultipartTyperS   rR   rT   rt   rw   rD   r   r   r   r~   r   r   r   r   rr   r   r   pathlibr   r   rJ   __classcell__)r`   s   @r-   r;   r;   f   s%       7"7*-7587GK7	7 7 7 7 7 7- -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_+ _+ _+  _+ _+ _+ 
_+ _+ _+ _+F *.
 
GL#%&
 
 
	
 
 
 
 
 
 
 
r/   r;   r   r&   c                     t          | d         | d         t          j        | d                                                             S )Nr   mimeTyper   )r   r   r   )r   r   r   rC   )r   s    r-   r   r     sG    V_$ 12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dS )rl   rK   rZ   r&   Nc                     |j         | _         |j        j        | _        || _        || _        t          j        |d                   | _        d S )Nrg   )r)   r*   r+   _request_initializerr   
RawHeaders_headers)r,   rK   rZ   s      r-   r.   zAPIResponse.__init__  sC    ]
!(!4!F'*;y+ABBr/   c                 8    d| j         d| j        d| j        dS )Nz<APIResponse url=z status=z status_text=>)rf   statusstatus_textr,   s    r-   __repr__zAPIResponse.__repr__  s+    h48hht{hhSWSchhhhr/   c                 .    | j         dk    o
| j         dk    S )N   i+  )r   r   s    r-   okzAPIResponse.ok  s    {c!8dkS&88r/   c                     | j         d         S )Nrf   r   r   s    r-   rf   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                 4    | j                                         S r(   )r   rg   r   s    r-   rg   zAPIResponse.headers  s    }$$&&&r/   c                 4    | j                                         S r(   )r   headers_arrayr   s    r-   r   zAPIResponse.headers_array  s    }**,,,r/   c                    K   	  j         j                             fdd           d {V }|t          d          t	          j        |d                   S # t          $ r%}t          |          rt          d          |d }~ww xY w)Nc                  T     j         j                            dd d j        i          S )NfetchResponseBodyfetchUid)r   rE   r   
_fetch_uidr   s   r-   <lambda>z"APIResponse.body.<locals>.<lambda>  s.    .BB'"DO  r/   TzResponse has been disposedbinary)r   r*   wrap_api_callr   r   	b64decoder   )r,   r   excs   `  r-   bodyzAPIResponse.body  s      	=4BB    	 	 	 	 	 	 	 	F ~8999#F8$4555 	 	 	%c** :8999I	s   AA 
B# BBc                 b   K   |                                   d {V }|                                S r(   )r   rC   r,   contents     r-   textzAPIResponse.text  s5      		######~~r/   c                 b   K   |                                   d {V }t          j        |          S r(   )r   rA   rB   r   s     r-   rA   zAPIResponse.json   s5      		######z'"""r/   c                 f   K   | j         j                            dd d| j        i           d {V  d S )NdisposeAPIResponser   r   rE   rF   r   r   s    r-   rc   zAPIResponse.dispose  s]      m$)) DO
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
r/   c                     | j         d         S )Nr   r   r   s    r-   r   zAPIResponse._fetch_uid  s     ,,r/   c                 b   K   | j         j                            dd d| j        i           d {V S )NfetchLogr   r   r   s    r-   
_fetch_logzAPIResponse._fetch_log  sS      ]+00DO
 
 
 
 
 
 
 
 	
r/   )r&   N)rN   rO   rP   r;   r   r.   rQ   r   propertyrR   r   rf   rT   r   r   r   rg   r   HeadersArrayr   r   r   r   r   rA   rc   r   r   r   rU   r/   r-   rl   rl     s       C 1 C C C C C Ci# i i i i 9D 9 9 9 X9 (S ( ( ( X( + + + + X+ /S / / / X/ ' ' ' ' X' -w3 - - - X-E    ( C        #C # # # #
 
 
 
 -C - - - X-
$s) 
 
 
 
 
 
r/   rl   rg   c                 j    | sdS | D ]+}|d         dk    r|d                              d          c S ,dS )NFr   zContent-Typer   zapplication/json)
startswith)rg   headers     r-   r   r     sX     u B B&>^++'?--.@AAAAA ,5r/   r   c                     t          | t                    sdS 	 t          j        |            dS # t          j        $ r Y dS w xY w)NFT)r?   rQ   rA   rB   JSONDecodeError)r   s    r-   r   r   $  sX    eS!! u
5t   uus   / AAr(   )>r   rA   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   r    playwright._impl._tracingr!   TYPE_CHECKINGplaywright._impl._playwrightr"   rQ   rR   rS   r   r   r   r   r   r$   r;   r   rl   r   r   r   rU   r/   r-   <module>r      sR             9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + + + + + + + + +	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 D C C C C C C C ; ; ; ; ; ;                        Y X X X X X X X - - - - - -	 8777777 U4+,,-eS!S%tUC DEEF4U4#3445s:;
' ' ' ' ' ' ' 'TT T T T T T T Tn
+ 2C    S
 S
 S
 S
 S
 S
 S
 S
l '"6 $    C D      r/   