a
    ҏi                     @   sp   d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZ G dd de	Zeedd	d
ZdS )    N)DictListOptionalcast)HeadersArray)ChannelOwner
StackFrame)HarLookupResultlocals_to_paramsc                	       s   e Zd Zeeeedd fddZeddddZeddd	d
Zdeeee	e
ee edddZeddddZeeddddZee eedddZeddddZeee ddddZ  ZS )
LocalUtilsN)parenttypeguidinitializerreturnc                    s*   t  |||| dd |d D | _d S )Nc                 S   s   i | ]}|d  t |d qS )nameZ
descriptor)parse_device_descriptor).0Zdevice r   M/home/Claro/venv/lib/python3.9/site-packages/playwright/_impl/_local_utils.py
<dictcomp>   s   z'LocalUtils.__init__.<locals>.<dictcomp>ZdeviceDescriptors)super__init__Zdevices)selfr   r   r   r   	__class__r   r   r      s    zLocalUtils.__init__)paramsr   c                    s   | j d|I d H  d S )Nzip_channelsend)r   r   r   r   r   r   !   s    zLocalUtils.zip)filer   c                    s"   t t }| jd|I d H  d S )NZharOpenr
   localsr   r    )r   r!   r   r   r   r   har_open$   s    
zLocalUtils.har_open)harIdurlmethodheadersisNavigationRequestpostDatar   c                    sB   t t }d|v r(t|d  |d< tt| jd|I d H S )Nr*   Z	harLookup)	r
   r#   base64	b64encodedecoder   r	   r   Zsend_return_as_dict)r   r%   r&   r'   r(   r)   r*   r   r   r   r   
har_lookup(   s    	
zLocalUtils.har_lookup)r%   r   c                    s"   t t }| jd|I d H  d S )NZharCloser"   )r   r%   r   r   r   r   	har_close9   s    
zLocalUtils.har_close)zipFileharFiler   c                    s"   t t }| jd|I d H  d S )NZharUnzipr"   )r   r0   r1   r   r   r   r   	har_unzip=   s    
zLocalUtils.har_unzip)	tracesDir	traceNamer   c                    s   t t }| jd|I d H S )NZtracingStartedr"   )r   r3   r4   r   r   r   r   tracing_startedA   s    
zLocalUtils.tracing_started)	stacks_idr   c                    s   | j dd|iI d H S )NZtraceDiscardedZstacksIdr   )r   r6   r   r   r   trace_discardedE   s    zLocalUtils.trace_discarded)idframesr   c                 C   s   | j dd||di d S )NZaddStackToTracingNoReplyZcallData)stackr8   )r   Zsend_no_reply)r   r8   r9   r   r   r   add_stack_to_tracing_no_replyH   s    z(LocalUtils.add_stack_to_tracing_no_reply)N)__name__
__module____qualname__r   strr   r   r   r$   r   boolr   bytesr	   r.   r/   r2   r5   r7   intr   r   r;   __classcell__r   r   r   r   r      s(   	 r   )dictr   c                 C   s*   | d | d | d | d | d | d dS )NZ	userAgentviewportZdeviceScaleFactorZisMobileZhasTouchZdefaultBrowserType)
user_agentrE   Zdevice_scale_factorZ	is_mobileZ	has_touchZdefault_browser_typer   )rD   r   r   r   r   T   s    r   )r+   typingr   r   r   r   Z playwright._impl._api_structuresr   Zplaywright._impl._connectionr   r   Zplaywright._impl._helperr	   r
   r   r   r   r   r   r   <module>   s   =