
    龙h`G                        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jX                  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jv                  de0fdZ<dede0f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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y)
APIRequestreturnNc                 j    || _         |j                  | _        |j                  j                  | _        y N)
playwright_loop_connection_dispatcher_fiber)selfr(   s     S/var/www/Befach/backend/env/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failOnStatusCodemaxRedirects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 |       d {               }|j"                  j%                  |       |S 7 7 l7 -w)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   s      "&(+V#">2MmT2})-)-88@@B*~& '):6BT;U)VF%&-LJJ+,.
 (
#$ oo..33L$OO
 	!!55g> 9(
 Ps8   ADDADDA DD	*DD	D)r(   r"   r%   NNNNNNNNNNNN)__name__
__module____qualname__r.   strr   r   boolr   floatr   r   r   r   r
   intrL    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de fd#Z! xZ"S )(r;   parenttypeguidinitializerr%   Nc                 ~    t         |   ||||       t        |d         | _        d | _        t        d       | _        y )Ntracing)superr.   r   _tracing_close_reasonr   rG   )r,   rW   rX   rY   rZ   	__class__s        r-   r.   zAPIRequestContext.__init__g   s>     	t[9!-k).D!E,0!0!6r/   reasonc                    K   || _         	 | j                  j                  dd d|i       d {    | j
                  j                          y 7 # t        $ r}t	        |      rY d }~y |d }~ww xY ww)Ndisposera   )r_   rE   rF   r   r   r^   _reset_stack_counter)r,   ra   es      r-   rc   zAPIRequestContext.disposeo   sk     #	--$$Yx6HIII
 	**, J 	%a(G	sC   A2"A AA A2A 	A/A*#A2(A**A//A2urlrI   headersdataform	multipartr6   r9   r3   r:   
maxRetriesAPIResponsec                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)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   sL      ZZ-/%!   
 
 	
 
   !*(*c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NHEADro   rq   rs   s               r-   headzAPIRequestContext.head   L      ZZ-/%!   
 
 	
 
ru   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NGETro   rq   rs   s               r-   rD   zAPIRequestContext.get   L      ZZ-/%!   
 
 	
 
ru   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NPATCHro   rq   rs   s               r-   patchzAPIRequestContext.patch   sL      ZZ-/%!   
 
 	
 
ru   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NPUTro   rq   rs   s               r-   putzAPIRequestContext.put   r|   ru   c                 X   K   | j                  |d||||||||	|
|       d {   S 7 w)NPOSTro   rq   rs   s               r-   postzAPIRequestContext.post
  ry   ru   urlOrRequestrp   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?   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;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| jD                  jF                  |t        |t              rt)        |      nd t        |t              r|nd |||||||
|||d       d {   }tI        | |      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'r{   zUnsupported 'data' type: bufferz Unexpected buffer type of 'data.')namefile)r   valuerr   )rf   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      #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=CK	K
Kpath	indexedDBc                    K   | j                   j                  dd d|i       d {   }|r't        |t        j                  |             d {    |S 7 /7 w)Nr7   r   )rE   send_return_as_dictr   rA   r   )r,   r   r   results       r-   rJ   zAPIRequestContext.storage_state  s[     
 }}88D;	":
 
 !$

6(:;;;
 <s!   #AA(AAAAr'   )
NNNNNNNNNNrM   )NN)#rN   rO   rP   r   rQ   r   r.   rc   
ParamsTyper   DataTypeFormTypeMultipartTyperS   rR   rT   rt   rx   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-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^+ ^+ ^+  ^+ ^+ ^+ 
^+D *.
GLL#%&
 
 
	
r/   r;   r   r%   c                 r    t        | d   | d   t        j                  | d         j                               S )Nr   mimeTyper   )r   r   r   )r   r   r   rC   )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)rl   rK   rZ   r%   Nc                     |j                   | _         |j                  j                  | _        || _        || _        t        j                  |d         | _        y )Nrg   )r)   r*   r+   _request_initializerr   
RawHeaders_headers)r,   rK   rZ   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=>)rf   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 )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                 6    | j                   j                         S r'   )r   rg   r   s    r-   rg   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                   fdd       d {   }|t        d      t	        j
                  |d         S 7 )# t        $ r}t        |      rt        d      |d }~ww xY ww)Nc                  j     j                   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'"DOOr/   TzResponse has been disposedbinary)r   r*   wrap_api_callr   r   	b64decoder   )r,   r   excs   `  r-   bodyzAPIResponse.body  s     	==44BB 	 	F ~899##F8$455	  	%c*899I	s8   B,A A(A BA 	B&A>>BBc                 ^   K   | j                          d {   }|j                         S 7 wr'   )r   rC   r,   contents     r-   textzAPIResponse.text  s&     		#~~ $s   -+-c                 h   K   | j                          d {   }t        j                  |      S 7 wr'   )r   rA   rB   r   s     r-   rA   zAPIResponse.json  s(     		#zz'"" $s   202c                    K   | j                   j                  j                  dd d| j                  i       d {    y 7 w)NdisposeAPIResponser   r   rE   rF   r   r   s    r-   rc   zAPIResponse.dispose  s<     mm$$)) DOO
 	
 	
s   7A?Ac                      | j                   d   S )Nr   r   r   s    r-   r   zAPIResponse._fetch_uid  s      ,,r/   c                    K   | j                   j                  j                  dd d| j                  i       d {   S 7 w)NfetchLogr   r   r   s    r-   
_fetch_logzAPIResponse._fetch_log  sA     ]]++00DOO
 
 	
 
s   7A >A )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i# i 9D 9 9 (S ( ( + + + /S / / ' ' ' -w33 - -E ( C  #C #
 -C - -
$s) 
r/   rl   rg   c                 T    | sy| D ]   }|d   dk(  s|d   j                  d      c S  y)NFr   zContent-Typer   zapplication/json)
startswith)rg   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?   rQ   rA   rB   JSONDecodeError)r   s    r-   r   r   #  s;    eS!

5 s   ) ??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      s6        9 9 + +	 	 	 D ;   Y -	7 U4+,,-eS!S%tUC DEEF4U4#3445s:;
' 'TS Sl
+ 2C S
 S
l'"6"6 $ C D r/   