
    &th                     V    d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d de	          Z
dS )	zTracing module.    )Path)Any)
CDPSession)
merge_dictc                   X    e Zd ZdZdeddfdZddededdfdZde	fd	Z
d
e	de	de	fdZdS )Tracingaq  Tracing class.

    You can use :meth:`start` and :meth:`stop` to create a trace file which can
    be opened in Chrome DevTools or
    `timeline viewer <https://chromedevtools.github.io/timeline-viewer/>`_.

    .. code::

        await page.tracing.start({'path': 'trace.json'})
        await page.goto('https://www.google.com')
        await page.tracing.stop()
    clientreturnNc                 0    || _         d| _        d| _        d S )NF )_client
_recording_path)selfr	   s     e/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/pyppeteer/tracing.py__init__zTracing.__init__   s    


    optionskwargsc                 B  K   t          ||          }g d}|                    d|          }d|v r|                    d           |                    dd          | _        d| _        | j                            dd	d
                    |          d           d{V  dS )ao  Start tracing.

        Only one trace can be active at a time per browser.

        This method accepts the following options:

        * ``path`` (str): A path to write the trace file to.
        * ``screenshots`` (bool): Capture screenshots in the trace.
        * ``categories`` (List[str]): Specify custom categories to use instead
          of default.
        )z-*zdevtools.timelinez
v8.executez%disabled-by-default-devtools.timelinez+disabled-by-default-devtools.timeline.frametoplevelzblink.consolezblink.user_timinglatencyInfoz+disabled-by-default-devtools.timeline.stackz#disabled-by-default-v8.cpu_profilerz)disabled-by-default-v8.cpu_profiler.hires
categoriesscreenshotsz'disabled-by-default-devtools.screenshotpathr   TzTracing.startReturnAsStream,)transferModer   N)r   getappendr   r   r   sendjoin)r   r   r   defaultCategoriescategoriesArrays        r   startzTracing.start    s       Wf--
 
 
 "++l4EFFG##""#LMMM[[,,
l,((?332
 2
   	 	 	 	 	 	 	 	 	r   c                     K    j         j                                         j                             d fd            j                             d           d{V  d _         d{V S )z>Stop tracing.

        :return: trace data as string.
        zTracing.tracingCompletec                     j         j                                                |                     d          j                                                fd          S )Nstreamc                 R                         |                                           S N)
set_resultresult)futcontentPromises    r   <lambda>z0Tracing.stop.<locals>.<lambda>.<locals>.<lambda>M   s    N55cjjllCC r   )r   _loopcreate_task_readStreamr   r   add_done_callback)eventr.   r   s    r   r/   zTracing.stop.<locals>.<lambda>J   s\    $,,88  8!4!4djAA CCCC  r   zTracing.endNF)r   r0   create_futureoncer!   r   )r   r.   s   `@r   stopzTracing.stopB   s      
 +99;;%    	
 	
 	
 l.........########r   handler   c                   K   d}g }|sd| j                             dd|i           d {V }|                    dd          }|                    |                    dd                     |d| j                             dd|i           d {V  d                    |          }|rSt          |          }|                    dd	
          5 }|                    |           d d d            n# 1 swxY w Y   |S )NFzIO.readr8   eofdatar   zIO.closewzutf-8)encoding)r   r!   r   r    r"   r   openwrite)	r   r8   r   r:   bufsresponser,   filefs	            r   r2   zTracing._readStreamT   sR      	2!\..y8V:LMMMMMMMMH,,ue,,CKKVR00111  	2 l
Xv,>????????? 	 ::D311  Q                             s   C//C36C3r*   )__name__
__module____qualname____doc__r   r   dictr   r%   strr7   r2    r   r   r   r      s         z d    
   4  #  $        D$C $ $ $ $$ 3 3      r   r   N)rG   pathlibr   typingr   pyppeteer.connectionr   pyppeteer.utilr   objectr   rJ   r   r   <module>rP      s                  + + + + + + % % % % % %V V V V Vf V V V V Vr   