
    iS                         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mZ d dl	m
Z
mZmZmZ d dlmZmZ d dlmZ dee         fdZ G d d	e          Z G d
 de          ZdS )    N)ABCabstractmethod)CallableDictOptionalUnion)compute_driver_executableget_driver_env)ParsedMessagePayloadreturnc                  ~   	 t           j        t          t           j        d          sd S t           j        j        rd S t           j                                        S # t
          t          t          j        f$ rE t          t           d          rt           j	        sY d S t           j	                                        cY S w xY w)Nclosed
__stderr__)
sysstderrhasattrr   filenoNotImplementedErrorAttributeErrorioUnsupportedOperationr        [/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/playwright/_impl/_transport.py_get_stderr_filenor      s    ' :WSZ%B%B4: 	4z  """1HI ' ' ' sL)) 	 	44~$$&&&&&'s!   &A A A =B<B<;B<c                       e Zd Zdej        ddfdZedd            ZddZedd            Z	edd            Z
edd	            Zed
eddfd            Zd
edefdZdeeef         defdZdS )	Transportloopr   Nc                 V    || _         d | _        |                                | _        d S )Nc                     d S Nr   )_s    r   <lambda>z$Transport.__init__.<locals>.<lambda>3   s    D r   )_loop
on_messagecreate_futureon_error_future)selfr   s     r   __init__zTransport.__init__1   s,    
BP./3/A/A/C/Cr   c                     d S r!   r   r(   s    r   request_stopzTransport.request_stop6       r   c                     d S r!   r   r+   s    r   disposezTransport.dispose:   s    r   c                 
   K   d S r!   r   r+   s    r   wait_until_stoppedzTransport.wait_until_stopped=         r   c                 
   K   d S r!   r   r+   s    r   connectzTransport.connectA   r2   r   c                 
   K   d S r!   r   r+   s    r   runzTransport.runE   r2   r   messagec                     d S r!   r   )r(   r7   s     r   sendzTransport.sendI   r-   r   c                     t          j        |          }dt          j        v r$t	          dt          j        |d                     |                                S )NDEBUGPz[32mSEND>[0m   indent)jsondumpsosenvironprintencode)r(   r7   msgs      r   serialize_messagezTransport.serialize_messageM   sL    j!!rz!!($*WQ*G*G*GHHHzz||r   datac                     t          j        |          }dt          j        v r$t	          dt          j        |d                     |S )Nr;   z[33mRECV>[0mr<   r=   )r?   loadsrA   rB   rC   r@   )r(   rG   objs      r   deserialize_messagezTransport.deserialize_messageS   sC    jrz!!($*S*C*C*CDDD
r   r   N)__name__
__module____qualname__asyncioAbstractEventLoopr)   r   r,   r/   r1   r4   r6   r   r9   bytesrF   r   strr   rK   r   r   r   r   r   0   sO       DW6 D4 D D D D
    ^       ^    ^    ^ D T    ^ %    c5j(9 >R      r   r   c                   b     e Zd Zdej        ddf fdZddZddZddZddZ	d	e
ddfd
Z xZS )PipeTransportr   r   Nc                 X    t                                          |           d| _        d S )NF)superr)   _stopped)r(   r   	__class__s     r   r)   zPipeTransport.__init__\   s&    r   c                 X    | j         sJ d| _        | j                                          d S )NT)_outputrX   closer+   s    r   r,   zPipeTransport.request_stop`   s0    ||r   c                 $   K   | j          d {V  d S r!   )_stopped_futurer+   s    r   r1   z PipeTransport.wait_until_stoppede   s'      """"""""""r   c                   K   t          j                    | _        	 t                      }t	          t
          dd          s!t                                          d          r|                    dd           d }t
          j	        dk    r>t          j                    }|xj        t          j        z  c_        t          j        |_        t!                      \  }}t          j        ||dt           j
        j        t           j
        j        t'                      d||		  	         d {V | _        n.# t*          $ r!}| j                            |           |d }~ww xY w| j        j        | _        d S )
NfrozenF__compiled__PLAYWRIGHT_BROWSERS_PATH0win32z
run-driver   )stdinstdoutr   limitenvstartupinfo)rP   Futurer^   r
   getattrr   globalsget
setdefaultplatform
subprocessSTARTUPINFOdwFlagsSTARTF_USESHOWWINDOWSW_HIDEwShowWindowr	   create_subprocess_execPIPEr   _proc	Exceptionr'   set_exceptionrf   r[   )r(   ri   rj   executable_pathentrypoint_pathexcs         r   r4   zPipeTransport.connecth   so     /6~/?/?	 ""CsHe,, @		n0M0M @93???K|w&&(466##z'FF##*4*<'/H/J/J,O_&=(-).)++'
  
  
  
 
 
 
 
 
DJJ  	 	 	 ..s333I	 z's   DD+ +
E5EEc                 d  K   | j         j        sJ | j         j        sJ | j        sP	 | j         j                            d           d {V }| j        rn!t
                              |dd          }t          d          }|r[t          |d          }| j         j                            |           d {V }| j        rn||z  }t          |          r||z   }n|}|[| j        rn| 
                    |          }|                     |           nC# t          j        $ r1 | j        s'| j                            t!          d                     Y n&w xY wt          j        d           d {V  | j        P| j                                          d {V  | j                            d            d S )N   littleF	byteordersignedr   re   z/Connection closed while reading from the driver)ry   rg   rf   rX   readexactlyint
from_bytesrR   minlenrK   r%   rP   IncompleteReadErrorr'   r{   rz   sleepcommunicater^   
set_result)r(   bufferlengthto_readrG   rJ   s         r   r6   zPipeTransport.run   s     z    z- 	##z0<<Q????????= (5QQq 	&!&%00G!%!2!>!>w!G!GGGGGGGD} g%F6{{ &!'$!%  	& = ..v66$$$$.   } (66!"STT    -"""""""""9 - 	#< j$$&&&&&&&&&''-----s   ,D BD '*D =EEr7   c                     | j         sJ |                     |          }| j                             t          |                              ddd          |z              d S )Nr   r   Fr   )r[   rF   writer   to_bytes)r(   r7   rG   s      r   r9   zPipeTransport.send   si    ||%%g..IIqHUCCdJ	
 	
 	
 	
 	
r   rL   )rM   rN   rO   rP   rQ   r)   r,   r1   r4   r6   r   r9   __classcell__)rY   s   @r   rU   rU   [   s        W6 4         
# # # #( ( ( (B". ". ". ".H
D 
T 
 
 
 
 
 
 
 
r   rU   )rP   r   r?   rA   rq   r   abcr   r   typingr   r   r   r   playwright._impl._driverr	   r
   playwright._impl._helperr   r   r   r   rU   r   r   r   <module>r      s.    				  				     



 # # # # # # # # 2 2 2 2 2 2 2 2 2 2 2 2 N N N N N N N N 9 9 9 9 9 9'HSM ' ' ' '&( ( ( ( ( ( ( (VW
 W
 W
 W
 W
I W
 W
 W
 W
 W
r   