
    g/8                        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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 d dl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& d d
l'm(Z( erd dlm)Z) d dl*m+Z+m,Z,m-Z-m.Z. ee/ee/   ee/ge0f   f   Z1ee/ee/   edge0f   f   Z2ee/ee/   edge0f   f   Z3eedgef   eddgef   f   Z4edgef   Z5ed   Z6ed   Z7ed   Z8ed   Z9ed   Z:ed   Z;ed   Z<ed   Z=ed   Z>ed   Z? G d ded      Z@ G d d ed      ZAd!ed"ee/ef   fd#ZB G d$ d%e      ZC G d& d'ed      ZD G d( d)e      ZE G d* d+e      ZFee/ee/eGe0f   f   ZHd,ee/   d-e/d.ee1   d"e0fd/ZI G d0 d1ed      ZJ G d2 d3      ZKd4eLd5ee	   d"e@fd6ZMdUd7e@d8ee/   d"efd9ZNd:e/d"e/fd;ZOd<ed"efd=ZPd"eQfd>ZR G d? d@      ZS G dA dB      ZT ej                  dC      ZVdDe/d"e/fdEZWdFeee/f   d"dfdGZXdHee/ef   dIee/eYf   d"dfdJZZdHee/ef   d"eYfdKZ[ edL      Z\dMe\d"e\fdNZ]dMee   d"eee      fdOZ^dPee   d"e0fdQZ_ ej                  dR      Z`dSe/d"e0fdTZay)V    N)Path)TracebackType)TYPE_CHECKINGAnyCallableDictListLiteralOptionalPatternSet	TypedDictTypeVarUnioncast)urljoinurlparse)	NameValue)ErrorTargetClosedErrorTimeoutErroris_target_closed_errorrewrite_error)glob_to_regex)RouteGreenlet)escape_regex_flags)HeadersArray)RequestResponseRouteWebSocketRouter   r   r    r!   )darklightno-preferencenull)activenoner%   )r$   r%   reduce)commitdomcontentloadedloadnetworkidle)AltControlControlOrMetaMetaShift)leftmiddleright)allowblock)fullminimal)attachembedomit)abortfallbackc                   <    e Zd ZU eed<   eed<   eed<   ee   ed<   y)ErrorPayloadmessagenamestackvalueN)__name__
__module____qualname__str__annotations__r   r        M/var/www/openai/venv/lib/python3.12/site-packages/playwright/_impl/_helper.pyr?   r?   K   s    L
IJC=rJ   r?   F)totalc                   (    e Zd ZU eed<   ee   ed<   y)HarRecordingMetadatapathcontentN)rD   rE   rF   rG   rH   r   HarContentPolicyrI   rJ   rK   rN   rN   R   s    
I&''rJ   rN   paramsreturnc                 :   dt        | d         i}d| v rJ| d   }t        |t               r||d<   t        |t              r|j                  |d<   t	        |      |d<   | d= d| v r| d   |d<   | d= d }d }d	| v r| d	   }| d	= d
| v r| d
   }| d
= |xs |rdnd }|r||d<   |S )NrO   recordHarPathrecordHarUrlFilterurlGloburlRegexSourceurlRegexFlagsrecordHarModemoderecordHarContentrecordHarOmitContentr;   rP   )rG   
isinstancer   patternr   )rR   
out_paramsoptnew_content_apiold_content_apirP   s         rK   prepare_record_har_optionsrd   W   s    "(#f_.E*F!GJv%)*c3$'Jy!c7#+.;;J'(*<S*AJ''(& #O4
6?#OOV# !34%&' !78)*FO&G '
9rJ   c                   ,    e Zd ZU eed<   eed<   eed<   y)ParsedMessageParamstypeguidinitializerN)rD   rE   rF   rG   rH   r   rI   rJ   rK   rf   rf   t   s    
I
IrJ   rf   c                   J    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   y)ParsedMessagePayloadidrh   methodrR   resulterrorN)	rD   rE   rF   intrH   rG   rf   r   r?   rI   rJ   rK   rk   rk   z   s"    G
IKKrJ   rk   c                       e Zd ZU ee   ed<   y)DocumentrequestN)rD   rE   rF   r   r   rH   rI   rJ   rK   rr   rr      s    c]rJ   rr   c                   B    e Zd ZU eed<   eed<   ee   ed<   ee   ed<   y)FrameNavigatedEventurlrA   newDocumentro   N)rD   rE   rF   rG   rH   r   rr   rI   rJ   rK   ru   ru      s!    	H
I(##C=rJ   ru   base_url
url_stringmatchc                    |syt        |t              r|d   dk7  r| rCt        j                  d|       r-t        j                  d|      rt        j                  dd|       } | rt        | |      }t        |      }|j                  dk(  r"|j                  d	
      }|j                         }t        |t              rt        |      }t        |t              rt        |j                  |            S  ||      S )NTr   *z
^https?://z^wss?://z^httpws /rO   )r^   rG   rerz   subr   r   rO   _replacegeturlr   r   boolsearch)rx   ry   rz   parseds       rK   url_matchesr      s     %%(c/ 1j1vvhh7HHe,E%;;"__#_.FMMOE%e$%!ELL,--rJ   c                   n    e Zd ZU ed   ed<   ee   ed<   ee   ed<   ee   ed<   ed   ed<   ee   ed<   y	)
HarLookupResult)ro   redirectfulfillnoentryactionr@   redirectURLstatusr   headersbodyN)rD   rE   rF   r
   rH   r   rG   rp   rI   rJ   rK   r   r      sA    =>>c]#SMn%%
3-rJ   r   c                       e Zd Zded    ddfdZdee   ddfdZddedefdZdee   ddfd	Zdee   fd
Z	dee   fdZ
defdZy)TimeoutSettingsparentrS   Nc                 .    || _         d | _        d | _        y N)_parent_default_timeout_default_navigation_timeout)selfr   s     rK   __init__zTimeoutSettings.__init__   s    15<@(rJ   timeoutc                     || _         y r   r   r   r   s     rK   set_default_timeoutz#TimeoutSettings.set_default_timeout   s
     'rJ   c                     ||S | j                   | j                   S | j                  r| j                  j                         S yNi0u  )r   r   r   r   s     rK   r   zTimeoutSettings.timeout   sB    N  ,(((<<<<''))rJ   navigation_timeoutc                     || _         y r   r   )r   r   s     rK   set_default_navigation_timeoutz.TimeoutSettings.set_default_navigation_timeout   s     ,>(rJ   c                     | j                   S r   r   r   s    rK   default_navigation_timeoutz*TimeoutSettings.default_navigation_timeout   s    ///rJ   c                     | j                   S r   r   r   s    rK   default_timeoutzTimeoutSettings.default_timeout   s    $$$rJ   c                     | j                   | j                   S | j                  r| j                  j                         S yr   )r   r   r   r   s    rK   r   z"TimeoutSettings.navigation_timeout   s7    ++7333<<<<2244rJ   r   )rD   rE   rF   r   r   floatr   r   r   r   r   r   rI   rJ   rK   r   r      s    Ax(9: At A
(8E? (t (u  >"*5/>	>
0HUO 0%% %E rJ   r   extbc           	      t    t        t        |       ddj                  t        j                  |                  S )Nr   r~   )r@   rA   rB   )r?   rG   join	traceback	format_tb)r   r   s     rK   serialize_errorr      s.    BgRWWY5H5H5L-M rJ   ro   logc                     t         }| j                  d      dk(  rt        }| j                  d      dk(  rt        }|sd} |t	        | d         |z         }| d   |_        | d   |_        |S )NrA   r   r   r~   r@   rB   )r   getr   r   patch_error_message_name_stack)ro   r   base_error_classexcs       rK   parse_errorr      st    yyN*'yy//,
.uY/?@3F
GCfCIwCJJrJ   r@   c                     t        j                  d|       }|r,t        |j                  d            |j                  d      z   } | j	                  dd      } | S )Nz(\w+)(: expected .*)      zPass { acceptDownloads: true }zPass 'accept_downloads=True')r   rz   to_snake_casegroupreplace)r@   rz   s     rK   r   r      sP    HH,g6EA/%++a.@oo(*HG NrJ   argsc                     i }| D ]7  }|dk(  r	| |   t        | |   t              s| |   nt        | |         ||<   9 |S )Nr   )r^   r   locals_to_params)r   copykeys      rK   r   r      sZ    D&=9  "$s)T2 S	%d3i0 I	  KrJ   c                  V    t        j                  t        j                         dz        S )Ni  )mathfloortime	monotonicrI   rJ   rK   monotonic_timer     s    ::dnn&-..rJ   c                   *    e Zd ZU ded<   ded<   ddZy)RouteHandlerInvocationasyncio.Futurecompleter    routeNc                      || _         || _        y r   )r   r   )r   r   r   s      rK   r   zRouteHandlerInvocation.__init__  s     
rJ   )r   r   r   r    rS   N)rD   rE   rF   rH   r   rI   rJ   rK   r   r   	  s    NrJ   r   c                       e Zd Z	 ddee   dedededee   f
dZ	ded	efd
Z
ddd	efdZddd	efdZded   d	dfdZed	efd       Zeded    d	eeeef      fd       Zy)RouteHandlerNrx   rv   handleris_synctimesc                     || _         || _        || _        |r|nt        j                  | _        d| _        || _        d| _        t               | _
        y )Nr   F)	_base_urlrv   r   r   inf_times_handled_count_is_sync_ignore_exceptionset_active_invocations)r   rx   rv   r   r   r   s         rK   r   zRouteHandler.__init__  sI     "$e$((!&@C rJ   request_urlrS   c                 D    t        | j                  || j                        S r   )r   r   rv   )r   r   s     rK   matcheszRouteHandler.matches$  s    4>>;AArJ   r   r    c           	        K   t        t        j                         j                         |      }| j                  j                  |       	 | j                  |       d {   |j                  j                  d        | j                  j                  |       S 7 :# t        $ r}| j                  r;Y d }~|j                  j                  d        | j                  j                  |       yt        |      r,| j                  sdnd}t        |dt        |       d| d      |d }~ww xY w# |j                  j                  d        | j                  j                  |       w xY ww)NFzawait r~   "z3" while running route callback.
Consider awaiting `zkpage.unroute_all(behavior='ignoreErrors')`
before the end of the test to ignore remaining routes in flight.)r   asyncioget_running_loopcreate_futurer   add_handle_internalr   
set_resultremove	Exceptionr   r   r   r   rG   )r   r   handler_invocationeoptional_async_prefixs        rK   handlezRouteHandler.handle'  sJ    3$$&446
 	  $$%78	@..u55 ''2248$$++,>?! 6 	%% ''2248$$++,>? &a( 9=2%#Q UVkUl  mY  Z  G	 ''2248$$++,>?sZ   AE(B B B #7E(B 	D*%D%1D- 57E(,9D%%D**D- -8E%%E(c                    K   j                         } xj                  dz  c_         j                  rHj                  j	                         d fd}t        |      }|j                           d {    n; j                  j                        }|rt        j                  |       d {    | d {   S 7 J7 7 w)Nr   c                      	 j                  j                         j                  d        y # t        $ r} j	                  |        Y d } ~ y d } ~ ww xY wr   )r   rs   r   r   set_exception)r   handler_finished_futurer   r   s    rK   _handlerz/RouteHandler._handle_internal.<locals>._handlerF  sI    =LL6+66t<  =+99!<<=s   -1 	AAArS   N)_start_handlingr   r   _loopr   r   switchr   rs   r   ensure_future)r   r   handled_futurer   gcoro_or_futurer   s   ``    @rK   r   zRouteHandler._handle_internal?  s     ..0q ==&+kk&?&?&A#= h'AHHJ)))!\\%?N++N;;;### *
 <#s6   A4C
9C:;C
5C6	C
?C C
C
C
behavior)ignoreErrorswaitc                    K   |dk(  rd| _         y g }| j                  D ]4  }|j                  j                  r|j	                  |j
                         6 t        j                  |  d {    y 7 w)Nr  T)r   r   r   
_did_throwappendr   r   gather)r   r  tasks
activations       rK   stopzRouteHandler.stopY  sb     
 ~%%)D"E"66
!''22LL!4!45 7 ..%(((s   5A22A2*A0+A2c                 :    | j                   dz   | j                  k\  S )Nr   )r   r   r   s    rK   will_expirezRouteHandler.will_expireg  s    ""Q&$++55rJ   handlersc                 ^   g }d}| D ]  }t        |j                  t              r|j                  d|j                  i       ;t        |j                  t        j
                        r<|j                  |j                  j                  t        |j                        d       d} |rddigS |S )NFglob)regexSource
regexFlagsTz**/*)r^   rv   rG   r  r   r   r_   r   )r  patternsallr   s       rK   prepare_interception_patternsz*RouteHandler.prepare_interception_patternsk  s     G'++s+ 56GKK4'.{{':':&8&E    V$%%rJ   r   )rD   rE   rF   r   rG   URLMatchRouteHandlerCallbackr   rp   r   r   r   r   r
   r  propertyr  staticmethodr	   r   r  rI   rJ   rK   r   r     s      $F3-F F &	F
 F }F"B3 B4 B@' @d @0$G $ $4)7+A#B )t ) 6T 6 6 ~&	d38n	 rJ   r   z(((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))rA   c                 J    t         j                  d|       j                         S )Nz_\1)to_snake_case_regexr   lower)rA   s    rK   r   r     s    ""6406688rJ   rO   c                     t         j                  j                  |       st        j                         | z  } t        j
                  t         j                  j                  |       d       y )NT)exist_ok)osrO   isabsr   cwdmakedirsdirnamer   s    rK   make_dirs_for_filer$    s=    77==xxzD KK%5rJ   filedatac                 ~    K   d fd}t        j                         }|j                  d |       d {    y 7 w)Nc                      t        t        t              rdnd      5 } | j                         d d d        y # 1 sw Y   y xY w)Nwwb)openr^   rG   write)fhr&  r%  s    rK   innerzasync_writefile.<locals>.inner  s2    $z$4$?2HHTN @??s	   ;Ar   )r   r   run_in_executor)r%  r&  r.  loops   ``  rK   async_writefiler1    s2      ##%D


tU
+++s   1=;=c                     K   dt         f fd}t        j                         }|j                  d |       d {   S 7 w)NrS   c                  h    t        d      5 } | j                         cd d d        S # 1 sw Y   y xY w)Nrb)r+  read)r-  r%  s    rK   r.  zasync_readfile.<locals>.inner  s$    $779 s   (1)bytesr   r   r/  )r%  r.  r0  s   `  rK   async_readfiler7    s<     5  ##%D%%dE2222s   6A >A Tobjc                 R    t        | d      rt        t        |       j                  S | S )N	_impl_obj)hasattrr   r   r;  )r9  s    rK   to_implr=    s#    sK C~'''JrJ   c           	          | sy g }| j                         D ]*  \  }}|j                  t        |t        |                   , |S )N)rA   rC   )itemsr  r   rG   )r9  rn   r   rC   s       rK   object_to_arrayr@    s=    Fiik
UiSE
;< "MrJ   rC   c                 F    t        | t              xr d| v xr
 d| v xr d| v S )NrA   mimeTypebuffer)r^   dict)rC   s    rK   is_file_payloadrE    s9    5$ 	eO	%	 	rJ   z^(text\/.*?|application\/(json|(x-)?javascript|xml.*?|ecmascript|graphql|x-www-form-urlencoded)|image\/svg(\+xml)?|application\/.*?(\+json|\+xml))(;\s*charset=.*)?$	mime_typec                 >    t        t        j                  |             S r   )r   TEXTUAL_MIME_TYPErz   )rF  s    rK   is_textual_mime_typerI    s    !''	233rJ   r   )br   r   r  r   r   r   pathlibr   typesr   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   urllib.parser   r    playwright._impl._api_structuresr   playwright._impl._errorsr   r   r   r   r   playwright._impl._globr   playwright._impl._greenletsr   playwright._impl._str_utilsr   r   playwright._impl._networkr   r   r    r!   rG   r   r  URLMatchRequestURLMatchResponser  WebSocketRouteHandlerCallbackColorSchemeForcedColorsReducedMotionDocumentLoadStateKeyboardModifierMouseButtonServiceWorkersPolicyHarModerQ   RouteFromHarNotFoundPolicyr?   rN   rd   rf   rk   rr   ru   r   Envr   r   r   r   r   r   r   r   rp   r   r   r   compiler  r   r$  r6  r1  r7  r8  r=  r@  rE  rH  rI  rI   rJ   rK   <module>rb     s     	 	        + 6  1 5 :=RRgclHcUD[$99:WS\8YK4E+FFGgclHj\45G,HHI gY^h';S'@AA  !)*:);S)@ A >?/09:OP MN /0/0 
#
$45 $%89 9E (9E (
t S#X :) 9E y )  3c5$&''(sm),5=h5G	4iu " "J	 x'> < | (3- 5   4 D / / m m` !bjj!KL 9 9 96U49- 6$ 6,c4i 0 ,c5j8I ,d ,3uS$Y/ 3E 3 CL q $ HT)_,E 8C= T  BJJ l 
4C 4D 4rJ   