a
    Ò�éil$  ã                   @   s   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 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 d d	lmZ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+ d dl,m-Z- erüd dl.m/Z/ G dd„ deƒZ0eddœdd„Z1dS )é    N)ÚPath)ÚSimpleNamespace)ÚTYPE_CHECKINGÚDictÚListÚOptionalÚPatternÚUnionÚcast)ÚGeolocationÚHttpCredentialsÚProxySettingsÚStorageStateÚViewportSize)ÚArtifact)ÚBrowserContext)Ú
CDPSession)ÚChannelOwnerÚfilter_noneÚfrom_channel)Úis_target_closed_error)
ÚColorSchemeÚForcedColorsÚHarContentPolicyÚHarModeÚReducedMotionÚServiceWorkersPolicyÚasync_readfileÚlocals_to_paramsÚmake_dirs_for_fileÚprepare_record_har_options)Úserialize_headers)ÚPage)ÚBrowserTypec                %       sö  e Zd Zedd�Zdeeeddœ‡ fdd„Zedœd	d
„Zddœdd„Z	e
ee dœdd„ƒZe
ddœdd„ƒZedœdd„Zd%eeeeeeeeeeee eeef eeeeeeeeeeeeeef eeeef eeeeef eeeeee ef eeedœ#dd„Z d&eeeeeeeeeeee eeef eeeeeeeeeeeeeef eeeef eeeeef eeeeee ef eee!dœ#dd„Z"d'eddœdd„Z#e
edœdd„ƒZ$e%dœdd„Z&d(e!eeef eee dd œd!d"„Z'e(dœd#d$„Z)‡  Z*S ))ÚBrowserZdisconnected)ÚDisconnectedr#   N)ÚparentÚtypeÚguidÚinitializerÚreturnc                    sP   t ƒ  ||||¡ |ˆ _dˆ _dˆ _d ˆ _g ˆ _ˆ j d‡ fdd„¡ d ˆ _	d S )NTFÚclosec                    s   ˆ   ¡ S ©N)Ú	_on_close)Ú_©Úself© úI/home/Claro/venv/lib/python3.9/site-packages/playwright/_impl/_browser.pyÚ<lambda>B   ó    z"Browser.__init__.<locals>.<lambda>)
ÚsuperÚ__init__Ú_browser_typeÚ_is_connectedÚ!_should_close_connection_on_closeÚ_cr_tracing_pathÚ	_contextsÚ_channelÚonÚ_close_reason)r0   r&   r'   r(   r)   ©Ú	__class__r/   r2   r6   8   s    zBrowser.__init__©r*   c                 C   s   d| j › d| j› d�S )Nz<Browser type=z	 version=ú>)r7   Úversionr/   r1   r1   r2   Ú__repr__E   s    zBrowser.__repr__c                 C   s   d| _ |  tjj| ¡ d S )NF)r8   Úemitr$   ÚEventsr%   r/   r1   r1   r2   r-   H   s    zBrowser._on_closec                 C   s
   | j  ¡ S r,   )r;   Úcopyr/   r1   r1   r2   ÚcontextsL   s    zBrowser.contextsc                 C   s   | j S r,   )r7   r/   r1   r1   r2   Úbrowser_typeP   s    zBrowser.browser_typec                 C   s   | j S r,   )r8   r/   r1   r1   r2   Úis_connectedT   s    zBrowser.is_connected)#ÚviewportÚscreenÚ
noViewportÚignoreHTTPSErrorsÚjavaScriptEnabledÚ	bypassCSPÚ	userAgentÚlocaleÚ
timezoneIdÚgeolocationÚpermissionsÚextraHTTPHeadersÚofflineÚhttpCredentialsÚdeviceScaleFactorÚisMobileÚhasTouchÚcolorSchemeÚreducedMotionÚforcedColorsÚacceptDownloadsÚdefaultBrowserTypeÚproxyÚrecordHarPathÚrecordHarOmitContentÚrecordVideoDirÚrecordVideoSizeÚstorageStateÚbaseURLÚstrictSelectorsÚserviceWorkersÚrecordHarUrlFilterÚrecordHarModeÚrecordHarContentr*   c#           &      Ã   sN   t tƒ ƒ}#t|#ƒI d H  | j d|#¡I d H }$ttt|$ƒƒ}%| j 	|%|#i ¡ |%S )NZ
newContext)
r   ÚlocalsÚprepare_browser_context_paramsr<   Úsendr
   r   r   r7   Z_did_create_context)&r0   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   ÚparamsZchannelÚcontextr1   r1   r2   Únew_contextW   s    %
zBrowser.new_context)#rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r^   r]   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   r*   c#           $      ƒ   s0   t tƒ ƒ‰ tdœ‡ ‡fdd„}#ˆj |#¡I d H S )NrA   c                  “   s4   ˆj f i ˆ ¤ŽI d H } |  ¡ I d H }| |_|| _|S r,   )rr   Únew_pageZ_owned_contextZ_owner_page)rq   Úpage©rp   r0   r1   r2   Úinner«   s
    zBrowser.new_page.<locals>.inner)r   rm   r"   Ú_connectionZwrap_api_call)$r0   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r^   r]   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rv   r1   ru   r2   rs   „   s    %
zBrowser.new_page)Úreasonr*   c              
   Ã   st   || _ z8| jr | j ¡ I d H  n| j dtd|iƒ¡I d H  W n0 tyn } zt|ƒsZ|‚W Y d }~n
d }~0 0 d S )Nr+   rx   )	r>   r9   rw   Z
stop_asyncr<   ro   r   Ú	Exceptionr   )r0   rx   Úer1   r1   r2   r+   ´   s     zBrowser.closec                 C   s
   | j d S )NrC   )Z_initializerr/   r1   r1   r2   rC   ¿   s    zBrowser.versionc                 Ã   s   t | j d¡I d H ƒS )NZnewBrowserCDPSession)r   r<   ro   r/   r1   r1   r2   Únew_browser_cdp_sessionÃ   s    zBrowser.new_browser_cdp_session)rt   ÚpathÚscreenshotsÚ
categoriesr*   c                 Ã   sJ   t tƒ ƒ}|r|j|d< |r2t|ƒ| _t|ƒ|d< | j d|¡I d H  d S )Nrt   r|   ZstartTracing)r   rm   r<   Ústrr:   ro   )r0   rt   r|   r}   r~   rp   r1   r1   r2   Ústart_tracingÆ   s    


zBrowser.start_tracingc                 Ã   sˆ   t tt| j d¡I d H ƒƒ}| ¡ I d H }| ¡ I d H  | jr„t| jƒ t	| jdƒ�}| 
|¡ W d   ƒ n1 st0    Y  d | _|S )NZstopTracingÚwb)r
   r   r   r<   ro   Zread_info_bufferÚdeleter:   r   ÚopenÚwrite)r0   ZartifactÚbufferÚfr1   r1   r2   Ústop_tracingÕ   s    
(zBrowser.stop_tracing)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)N)NNNN)+Ú__name__Ú
__module__Ú__qualname__r   rF   r   r   r6   rD   r-   Úpropertyr   r   rH   rI   ÚboolrJ   r   r   r   Úfloatr   r   r   r   r	   r   r   r   r   r   r   rr   r"   rs   r+   rC   r   r{   r€   Úbytesr‡   Ú__classcell__r1   r1   r?   r2   r$   3   sV  ÿþ                                  Ý


Ü/                                  Ý


Ü0    û
úr$   )rp   r*   c                 Ã   sB  |   d¡r| d= d| d< d| v r&| d= d| v r>t| d ƒ| d< d| v rXt| ƒ| d< | d= d| v rœd	t| d ƒ ¡ i| d
< d| v r–| d | d
 d< | d= | d= d| v rÒ| d }t|tƒsÒt t	|ƒI d H  
¡ ¡| d< |   dd ¡dkrêd| d< |   dd ¡dk�rd| d< |   dd ¡dk�rd| d< d| v �r>| d �r6dnd| d< d S )NrM   TZnoDefaultViewportr`   rV   rb   Z	recordHarrd   ÚdirZrecordVideore   Úsizerf   r\   Únullzno-overrider]   r^   r_   ÚacceptZdeny)Úgetr!   r    r   ÚabsoluteÚ
isinstanceÚdictÚjsonÚloadsr   Údecode)rp   rf   r1   r1   r2   rn   á   s<    

ÿ
rn   )2r˜   Úpathlibr   Útypesr   Útypingr   r   r   r   r   r	   r
   Z playwright._impl._api_structuresr   r   r   r   r   Zplaywright._impl._artifactr   Z!playwright._impl._browser_contextr   Zplaywright._impl._cdp_sessionr   Zplaywright._impl._connectionr   r   r   Zplaywright._impl._errorsr   Zplaywright._impl._helperr   r   r   r   r   r   r   r   r   r    Zplaywright._impl._networkr!   Zplaywright._impl._pager"   Zplaywright._impl._browser_typer#   r$   rn   r1   r1   r1   r2   Ú<module>   s"   $0 /