
    tf                         d Z ddlZddlmZ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 erddlmZ  ej"                  e      Z G d d	e	      Zy)
zWorker module.    N)AnyCallableDictListTYPE_CHECKING)EventEmitter)ExecutionContextJSHandle)
debugError)
CDPSessionc            
            e Zd ZdZdddedeeee   gdf   deegdf   ddf
 fd	Z	d
e
ddfdZedefd       Zde
fdZdededefdZdededefdZ xZS )Workera  The Worker class represents a WebWorker.

    The events `workercreated` and `workerdestroyed` are emitted on the page
    object to signal the worker lifecycle.

    .. code::

        page.on('workercreated', lambda worker: print('Worker created:', worker.url))
    clientr   urlconsoleAPICalledNexceptionThrownreturnc                 :    t         	            _        | _        j                   _         j                  j                          _        dt        dt        fddt        dd f fd} j                  j                  d|       	  j                  j                  di        dt        dd ffd} j                  j                  d	|        j                  j                  d
fd       y # t        $ r}t        t        |       Y d }~id }~ww xY w)NremoteObjectr   c                      y N )r   s    Z/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/pyppeteer/worker.pyjsHandleFactoryz(Worker.__init__.<locals>.jsHandleFactory)   s        eventc                 p    dt         dt        ffdt        | d         j                         y )Nr   r   c                     t        |       S r   )r
   )r   r   executionContexts    r   r   zKWorker.__init__.<locals>.onExecutionContentCreated.<locals>.jsHandleFactory/   s     0&,GGr   context)r   r
   r	   _executionContextCallback)r   r   r   r   selfs    @r   onExecutionContentCreatedz2Worker.__init__.<locals>.onExecutionContentCreated,   sA    Hd Hx H  0i(/ ;**+;<r   zRuntime.executionContextCreatedzRuntime.enablec                 ~    g }| j                  dg       D ]  }|j                   |               | d   |       y )Nargstype)getappend)r   r%   argr   r   s      r   onConsoleAPICalledz+Worker.__init__.<locals>.onConsoleAPICalled?   sA    #%Dyy, 2OC012U6]D1r   zRuntime.consoleAPICalledzRuntime.exceptionThrownc                      | d         S )NexceptionDetailsr   )	exceptionr   s    r   <lambda>z!Worker.__init__.<locals>.<lambda>H   s    oi8J.KL r   )super__init___client_url_loopcreate_future_executionContextPromiser   r
   onsend	Exceptionr   logger)
r"   r   r   r   r   r#   er*   r   	__class__s
   `` ``   @r   r0   zWorker.__init__   s     		\\
(,

(@(@(B%	$ 	8 		=T 	=d 	= 	91	3	" LL.3	2d 	2t 	2 	24FG%L	
  	"vq!!	"s   C7 7	D DDvaluec                 :    | j                   j                  |       y r   )r5   
set_result)r"   r<   s     r   r!   z Worker._executionContextCallbackK   s    %%007r   c                     | j                   S )zReturn URL.)r2   r"   s    r   r   z
Worker.urlN   s     yyr   c                 6   K   | j                    d{   S 7 w)zReturn ExecutionContext.N)r5   r@   s    r   r   zWorker.executionContextS   s     22222s   pageFunctionr%   c                 l   K    | j                    d{   j                  |g|  d{   S 7 7 w)zEvaluate ``pageFunction`` with ``args``.

        Shortcut for ``(await worker.executionContext).evaluate(pageFunction, *args)``.
        N)r5   evaluater"   rB   r%   s      r   rD   zWorker.evaluateW   s@     
 DD999CC!! ! 	!9 !   404244c                 l   K    | j                    d{   j                  |g|  d{   S 7 7 w)zEvaluate ``pageFunction`` with ``args`` and return :class:`~pyppeteer.execution_context.JSHandle`.

        Shortcut for ``(await worker.executionContext).evaluateHandle(pageFunction, *args)``.
        N)r5   evaluateHandlerE   s      r   rH   zWorker.evaluateHandle_   s@     
 JD999II!! ! 	!9 !rF   )__name__
__module____qualname____doc__strr   r   r
   r   r0   r	   r!   propertyr   r   r   rD   rH   __classcell__)r;   s   @r   r   r      s    *
| *
# *
#+S$x.,A4,G#H*
"*D64<"8*
 *
X8/? 8D 8 S  3(8 3!3 !s !s !! !S !X !r   r   )rL   loggingtypingr   r   r   r   r   pyeer   pyppeteer.execution_contextr	   r
   pyppeteer.helperr   pyppeteer.connectionr   	getLoggerrI   r9   r   r   r   r   <module>rW      sB      ; ;  B '/			8	$Q!\ Q!r   