o
    LDiI                     @   s  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mZ d dlmZmZ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rd dlm,Z, d dl-m.Z.m/Z/m0Z0m1Z1 ee2ee2 ee2ge3f f Z4ee2ee2 edge3f f Z5ee2ee2 edge3f f Z6eedgef eddgef f Z7edgef Z8ed Z9ed Z:ed Z;ed Z<ed Z=ed Z>ed Z?ed Z@ed ZAed ZBed ZCG dd deddZDG d d! d!eddZEd"ed#ee2ef fd$d%ZFG d&d' d'eZGG d(d) d)eddZHG d*d+ d+eZIG d,d- d-eZJee2ee2eKe3f f ZL	dvd.ee2 d/e2d0ee4 d1e3d#e3f
d2d3ZM	dvd.ee2 d4e2d1e3d#e2fd5d6ZNd.ee2 d#ee2 fd7d8ZOd.ee2 d0e2d#e2fd9d:ZPd.ee2 d;e2d#ee2ee2 f fd<d=ZQd>e2d#efd?d@ZRG dAdB dBeddZSdCZTdDZUdEZVG dFdG dGZWdHeXdIee	 d#eDfdJdKZYdvdLeDdMee2 d#e!fdNdOZZdPe2d#e2fdQdRZ[dSed#efdTdUZ\d#e]fdVdWZ^G dXdY dYZ_G dZd[ d[Z`ead\Zbd]e2d#e2fd^d_Zcd`eee2f d#dfdadbZddcee2ef ddee2eef d#dfdedfZfdcee2ef d#eefdgdhZgediZhdjehd#ehfdkdlZidjee d#eee  fdmdnZjdoee d#e3fdpdqZkeadrZldse2d#e3fdtduZmdS )w    N)Path)TracebackType)TYPE_CHECKINGAnyCallableDictListLiteralOptionalPatternSetTuple	TypedDictTypeVarUnioncast)ParseResulturljoinurlparse
urlunparse)	NameValue)ErrorTargetClosedErrorTimeoutErroris_target_closed_errorrewrite_error)glob_to_regex_pattern)RouteGreenlet)escape_regex_flags)HeadersArray)RequestResponseRouteWebSocketRouter    r!   r"   r#   )darklightno-preferencenull)activenoner'   )morer&   r'   )r&   r'   reduce)commitdomcontentloadedloadnetworkidle)AltControlControlOrMetaMetaShift)leftmiddleright)allowblock)fullminimal)attachembedomit)abortfallbackc                   @   s2   e Zd ZU eed< eed< eed< ee ed< dS )ErrorPayloadmessagenamestackvalueN)__name__
__module____qualname__str__annotations__r
   r    rK   rK   d/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/playwright/_impl/_helper.pyrA   M   s
   
 rA   F)totalc                   @   s"   e Zd ZU eed< ee ed< dS )HarRecordingMetadatapathcontentN)rF   rG   rH   rI   rJ   r
   HarContentPolicyrK   rK   rK   rL   rN   T   s   
 rN   paramsreturnc                 C   s   dt | d i}d| v r,| d }t|t r||d< t|tr)|j|d< t||d< | d= d| v r9| d |d< | d= d }d }d	| v rH| d	 }| d	= d
| v rS| d
 }| d
= |pZ|rYdnd }|ra||d< |S )NrO   recordHarPathrecordHarUrlFilterurlGloburlRegexSourceurlRegexFlagsrecordHarModemoderecordHarContentrecordHarOmitContentr>   rP   )rI   
isinstancer   patternr   )rR   
out_paramsoptnew_content_apiold_content_apirP   rK   rK   rL   prepare_record_har_optionsY   s0   


rc   c                   @   s&   e Zd ZU eed< eed< eed< dS )ParsedMessageParamstypeguidinitializerN)rF   rG   rH   rI   rJ   r   rK   rK   rK   rL   rd   v   s   
 rd   c                   @   s>   e Zd ZU eed< eed< eed< eed< eed< eed< dS )ParsedMessagePayloadidrf   methodrR   resulterrorN)	rF   rG   rH   intrJ   rI   rd   r   rA   rK   rK   rK   rL   rh   |   s   
 rh   c                   @   s   e Zd ZU ee ed< dS )DocumentrequestN)rF   rG   rH   r
   r   rJ   rK   rK   rK   rL   rn      s   
 rn   c                   @   s6   e Zd ZU eed< eed< ee ed< ee ed< dS )FrameNavigatedEventurlrC   newDocumentrl   N)rF   rG   rH   rI   rJ   r
   rn   rK   rK   rK   rL   rp      s
   
 rp   base_url
url_stringmatchwebsocket_urlc                 C   sD   |sdS t |trtt| ||}t |trt||S ||S )NT)r]   rI   recompileresolve_glob_to_regex_patternr   boolsearch)rs   rt   ru   rv   rK   rK   rL   url_matches   s   


r|   globc                 C   s   |rt | } t| |}t|S N)to_websocket_base_urlresolve_glob_baser   )rs   r}   rv   rK   rK   rL   ry      s   
ry   c                 C   s&   | d urt d| rt dd| } | S )Nz
^https?://z^httpws)rw   ru   sub)rs   rK   rK   rL   r      s   r   c                    s  |d dkr|S i  dt dt dt f fdd}|dd	}|d
s6|ds6|ds6|ds6|dr8|S g }t|dD ]e\}}|dv rO|| qA|dkro|drod|v s`d|v ri|||d n|| qA|d	}|dkr|||d| d qA||d | d| d}|||d  d| d}|||  qAd|}	t	| |	\}
} 
 D ]\}}|o||v }|
||r| n|d}
q|
S )Nr   *originalreplacementrS   c                    s   t | dkrdS |  |< |S )Nr    )len)r   r   	token_maprK   rL   	map_token   s   z$resolve_glob_base.<locals>.map_tokenz\\??zabout:zdata:zchrome:zedge:zfile:/).z..r   :{zhttp:z$_z_$z?$_   )rI   replace
startswith	enumeratesplitappendendswithfindjoinresolve_base_urlitemslower)rs   ru   r   processed_partsindextokenquestion_index
new_prefix
new_suffixrelative_pathresolvedcase_insensitive_partr   	normalizerK   r   rL   r      sP   



r   	given_urlc                 C   sx   z.t t| d ur	| nd|}t|}|jpd}|jr"|d|j 7 }|j d| }||fW S  ty;   |d f Y S w )Nr   r   z://)nodelike_urlparser   r   hostnameportscheme	Exception)rs   r   rq   r   hostname_portcase_insensitive_prefixrK   rK   rL   r      s   
r   rq   c                 C   s4   t | dd}|jdv }|r|jdkr|jdd}|S )NT)allow_fragments)httphttpsr   wssftpfiler   r   rO   )r   r   rO   _replace)rq   parsedis_special_urlrK   rK   rL   r     s   

r   c                   @   sV   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< d	S )
HarLookupResult)rl   redirectfulfillnoentryactionrB   redirectURLstatusr   headersbodyN)rF   rG   rH   r	   rJ   r
   rI   rm   rK   rK   rK   rL   r     s   
 r   i0u  i  ic                   @   s   e Zd Zeddee defddZded  ddfddZdee ddfd	d
ZddedefddZ	dee ddfddZ
dee fddZdee fddZddedefddZdS )TimeoutSettingsNtimeoutrS   c                 C   s   | d ur| S t S r~   )1DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT_IN_MILLISECONDS)r   rK   rK   rL   launch_timeout"  s
   zTimeoutSettings.launch_timeoutparentc                 C   s   || _ d | _d | _d S r~   )_parent_default_timeout_default_navigation_timeout)selfr   rK   rK   rL   __init__*  s   
zTimeoutSettings.__init__c                 C   
   || _ d S r~   r   r   r   rK   rK   rL   set_default_timeout/  s   
z#TimeoutSettings.set_default_timeoutc                 C   s0   |d ur|S | j d ur| j S | jr| j S tS r~   )r   r   r   *DEFAULT_PLAYWRIGHT_TIMEOUT_IN_MILLISECONDSr   rK   rK   rL   r   2  s   

zTimeoutSettings.timeoutnavigation_timeoutc                 C   r   r~   r   )r   r   rK   rK   rL   set_default_navigation_timeout;  s   
z.TimeoutSettings.set_default_navigation_timeoutc                 C      | j S r~   r   r   rK   rK   rL   default_navigation_timeout@     z*TimeoutSettings.default_navigation_timeoutc                 C   r   r~   r   r   rK   rK   rL   default_timeoutC  r   zTimeoutSettings.default_timeoutc                 C   s@   |d ur|S | j d ur| j S | jd ur| jS | jr| j S tS r~   )r   r   r   r   r   r   rK   rK   rL   r   F  s   


z"TimeoutSettings.navigation_timeoutr~   )rF   rG   rH   staticmethodr
   floatr   r   r   r   r   r   r   r   rK   rK   rK   rL   r      s    	
r   extbc                 C   s   t t| ddt|dS )Nr   r   )rB   rC   rD   )rA   rI   r   	traceback	format_tb)r   r   rK   rK   rL   serialize_errorR  s   r   rl   logc                 C   s\   t }| ddkrt}| ddkrt}|sd}|t| d | }| d |_| d |_|S )NrC   r   r   r   rB   rD   )r   getr   r   patch_error_message_name_stack)rl   r   base_error_classexcrK   rK   rL   parse_errorX  s   

r   rB   c                 C   s8   t d| }|rt|d|d } | dd} | S )Nz(\w+)(: expected .*)r      zPass { acceptDownloads: true }zPass 'accept_downloads=True')rw   ru   to_snake_casegroupr   )rB   ru   rK   rK   rL   r   f  s   r   argsc                 C   sN   i }| D ] }|dkrq| | d ur$t | | ts| | nt| | ||< q|S )Nr   )r]   r   locals_to_params)r   copykeyrK   rK   rL   r   p  s   

r   c                   C   s   t t d S )Ni  )mathfloortime	monotonicrK   rK   rK   rL   monotonic_time~  s   r   c                   @   s(   e Zd ZU ded< ded< d	ddZdS )
RouteHandlerInvocationasyncio.Futurecompleter"   routerS   Nc                 C   s   || _ || _d S r~   )r   r   )r   r   r   rK   rK   rL   r     s   
zRouteHandlerInvocation.__init__)r   r   r   r"   rS   N)rF   rG   rH   rJ   r   rK   rK   rK   rL   r     s   
 r   c                   @   s   e Zd Z	ddee dedededee f
ddZ	d	ed
efddZ
ddd
efddZddd
efddZded d
dfddZed
efddZeded  d
eeeef  fddZdS )RouteHandlerNrs   rq   handleris_synctimesc                 C   s@   || _ || _|| _|r|ntj| _d| _|| _d| _t	 | _
d S )Nr   F)	_base_urlrq   r   r   inf_times_handled_count_is_sync_ignore_exceptionset_active_invocations)r   rs   rq   r   r   r   rK   rK   rL   r     s   zRouteHandler.__init__request_urlrS   c                 C   s   t | j|| jS r~   )r|   r   rq   )r   r  rK   rK   rL   matches     zRouteHandler.matchesr   r"   c              
      s   t t  |}| j| zUz| |I d H W W |jd  | j	| S  t
ye } z2| jrFW Y d }~W |jd  | j	| dS t|r_| jsOdnd}t|dt| d| d|d }~ww |jd  | j	| 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remover   r  r   r   r   rI   )r   r   handler_invocationeoptional_async_prefixrK   rK   rL   handle  s2   zRouteHandler.handlec                    s     } jd7  _jr+j  d fdd}t|}|   I d H  nj}|r<t	
|I d H  |I d H S )Nr   rS   c               
      sP   z j  d  W d S  ty' }  z |  W Y d } ~ d S d } ~ ww r~   )r   ro   r  r   set_exception)r  handler_finished_futurer   r   rK   rL   _handler  s   z/RouteHandler._handle_internal.<locals>._handlerrS   N)_start_handlingr   r   _loopr
  r   switchr   ro   r  ensure_future)r   r   handled_futurer  gcoro_or_futurerK   r  rL   r    s   
	
zRouteHandler._handle_internalbehavior)ignoreErrorswaitc                    sL   |dkr
d| _ d S g }| jD ]}|jjs||j qtj| I d H  d S )Nr   T)r  r  r   
_did_throwr   r   r  gather)r   r  tasks
activationrK   rK   rL   stop  s   

zRouteHandler.stopc                 C   s   | j d | jkS )Nr   )r   r   r   rK   rK   rL   will_expire  s   zRouteHandler.will_expirehandlersc                 C   sp   g }d}| D ](}t |jtr|d|ji qt |jtjr,||jjt|jd qd}q|r6ddigS |S )NFr}   )regexSource
regexFlagsTz**/*)r]   rq   rI   r   rw   r   r^   r   )r(  patternsallr   rK   rK   rL   prepare_interception_patterns  s   
z*RouteHandler.prepare_interception_patternsr~   )rF   rG   rH   r
   rI   URLMatchRouteHandlerCallbackrz   rm   r   r  r  r  r	   r&  propertyr'  r   r   r   r-  rK   rK   rK   rL   r     s2    
r   z(((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))rC   c                 C   s   t d|  S )Nz_\1)to_snake_case_regexr   r   )rC   rK   rK   rL   r     r  r   rO   c                 C   s2   t j| st |  } t jt j| dd d S )NT)exist_ok)osrO   isabsr   cwdmakedirsdirnamer   rK   rK   rL   make_dirs_for_file  s   r8  r   datac                    s0   d fdd}t  }|d |I d H  d S )NrS   c                     sH   t t tr	dnd} |   W d    d S 1 sw   Y  d S )Nwwb)openr]   rI   writefhr9  r   rK   rL   inner	  s   "zasync_writefile.<locals>.innerr  )r  r	  run_in_executor)r   r9  rA  looprK   r@  rL   async_writefile  s   rD  c                    s.   dt f fdd}t }|d |I d H S )NrS   c                     s6   t  d} |  W  d    S 1 sw   Y  d S )Nrb)r<  readr>  r   rK   rL   rA    s   $zasync_readfile.<locals>.inner)bytesr  r	  rB  )r   rA  rC  rK   rG  rL   async_readfile  s   rI  Tobjc                 C   s   t | drtt| jS | S )N	_impl_obj)hasattrr   r   rL  )rK  rK   rK   rL   to_impl  s   
rN  c                 C   s8   | sd S g }|   D ]\}}|t|t|d q
|S )N)rC   rE   )r   r   r   rI   )rK  rk   r   rE   rK   rK   rL   object_to_array#  s   rO  rE   c                 C   s"   t | tod| v od| v od| v S )NrC   mimeTypebuffer)r]   dict)rE   rK   rK   rL   is_file_payload,  s   
rS  z^(text\/.*?|application\/(json|(x-)?javascript|xml.*?|ecmascript|graphql|x-www-form-urlencoded)|image\/svg(\+xml)?|application\/.*?(\+json|\+xml))(;\s*charset=.*)?$	mime_typec                 C   s   t t| S r~   )rz   TEXTUAL_MIME_TYPEru   )rT  rK   rK   rL   is_textual_mime_type:  s   rV  r~   )nr  r   r3  rw   r   r   pathlibr   typesr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   urllib.parser   r   r   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#   rI   rz   r.  URLMatchRequestURLMatchResponser/  WebSocketRouteHandlerCallbackColorSchemeForcedColorsContrastReducedMotionDocumentLoadStateKeyboardModifierMouseButtonServiceWorkersPolicyHarModerQ   RouteFromHarNotFoundPolicyrA   rN   rc   rd   rh   rn   rp   r   Envr|   ry   r   r   r   r   r   r   r   PLAYWRIGHT_MAX_DEADLINEr   r   r   r   r   r   rm   r   r   r   rx   r1  r   r8  rH  rD  rI  rJ  rN  rO  rS  rU  rV  rK   rK   rK   rL   <module>   s   @	

	=
	2
	
p&				