
    &th&                        d Z ddlZddlZddl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ZddlmZ ddlmZmZ  ej        e          Zdej        ded	dfd
Zdeded	efdZded	efdZdededed	e	eef         fdZde
e         d	dfdZdddej        ej         dZde	d	efdZ deded	efdZ!dededeege"f         de#dej$        d	efdZ%ded ed	e&fd!Z'd"ed	e"fd#Z(dS )$zHelper functions.    N)Any	AwaitableCallableDictList)EventEmitter)
CDPSession)ElementHandleErrorTimeoutError_loggermsgreturnc                 v    t           j        r|                     |           dS |                     |           dS )zLog error messages.N)	pyppeteerDEBUGerrordebug)r   r   s     d/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/pyppeteer/helper.py
debugErrorr      s<     cc    funargsc                 V    d                     d |D                       }d|  d| d}|S )z&Convert function and arguments to str.z, c                 >    g | ]}t          j        |dn|          S )N	undefined)jsondumps).0args     r   
<listcomp>z$evaluationString.<locals>.<listcomp>   s7       <?
#+;;377  r   (z)())join)r   r   _argsexprs       r   evaluationStringr&      sP    II  CG    E seDKr   exceptionDetailsc                 P   |                      d          }|r*|                     d          p|                     d          S |                      dd          }|                      dt                                }|r|                     d          D ]}t          |                     dd                    d	z   t          |                     d
d                    z   d	z   t          |                     d                    z   }|                     dd          }|d| d| dz   }|S )z5Get exception message from `exceptionDetails` object.	exceptiondescriptionvaluetext 
stackTrace
callFramesurl:
lineNumbercolumnNumberfunctionNamez<anonymous>z
    at z (r"   )getdictstr)r'   r)   messager.   	callframelocationr4   s          r   getExceptionMessager;   &   s4    $$[11I F}}]++Ey}}W/E/EE""62..G!%%lDFF;;J H#55 	H 	HIIMM%,,--3IMM,334457:;IMM.11223 
 %==GGL GL G GH G G GGGGNr   emitter	eventNamehandlerc                 :    |                      ||           | ||dS )z6Add handler to the emitter and return emitter/handler.r<   r=   r>   )onr@   s      r   addEventListenerrB   9   s(     JJy'"""Y7KKKr   	listenersc                     | D ]0}|d         }|d         }|d         }|                     ||           1|                                  dS )zRemove listeners from emitter.r<   r=   r>   N)remove_listenerclear)rC   listenerr<   r=   r>   s        r   removeEventListenersrH   @   s^     4 49%[)	9%	73333OOr   )-0NaNNInfinity	-InfinityremoteObjectc                 P   |                      d          rt          d          |                      d          }|rW|dk    rdS |dk    rdS |dk    rt          j        S |d	k    rt          j         S t          d
                    |                    |                      d          S )z!Serialize value of remote object.objectIdz+Cannot extract value when objectId is givenunserializableValuerI   r   rJ   NrK   rL   z$Unsupported unserializable value: {}r+   )r5   r
   mathinfformat)rM   r+   s     r   valueFromRemoteObjectrT   S   s    
## P !NOOO233E FD==2e^^4j  8Ok!!H9$6==eDDF F FG$$$r   clientc                    |                     d          }| j                                        }|                    d           |s|S 	 |                     dd|i          S # t
          $ r}t          t          |           Y d}~nd}~ww xY w|S )zRelease remote object.rO   NzRuntime.releaseObject)r5   _loopcreate_future
set_resultsend	Exceptionr   logger)rU   rM   rO   fut_nonees        r   releaseObjectr_   g   s     
++H|))++H {{25
   	     	61 Os   	A! !
B
+BB
	predicatetimeoutloopc                   	
 |                                 
dt          ddf
fddt          ddf
fdd
fd}dt          ddffd}t          | ||          	r|                     |                      d
	fd	
S )z+Wait for an event emitted from the emitter.targetr   Nc                 2                         |            d S N)rY   )rd   promises    r   resolveCallbackz%waitForEvent.<locals>.resolveCallback   s    6"""""r   r)   c                 2                         |            d S rf   )set_exception)r)   rg   s    r   rejectCallbackz$waitForEvent.<locals>.rejectCallback   s    i(((((r   c                  v   K   t          j        dz             d {V    t          d                     d S )Ni  z(Timeout exceeded while waiting for event)asynciosleepr   )rk   ra   s   r   timeoutTimerz"waitForEvent.<locals>.timeoutTimer   s\      mGdN+++++++++CDD	F 	F 	F 	F 	Fr   c                 L     |           sd S                |            d S rf    )rd   cleanupr`   rh   s    r   	_listenerzwaitForEvent.<locals>._listener   s;    y   	F			r   c                  X    t          g           r                                  d S d S rf   )rH   cancel)eventTimeoutrG   ra   s   r   rr   zwaitForEvent.<locals>.cleanup   s=    hZ((( 	"!!!!!	" 	"r   )r   N)rX   r   r[   rB   create_task)r<   r=   r`   ra   rb   ro   rs   rr   rv   rG   rg   rk   rh   s     ``   @@@@@@r   waitForEventrx   z   s8      ""G# # # # # # # #)) ) ) ) ) ) ) )F F F F F F F
 #  $                  I>>H 8''77" " " " " " " "
 Nr   objnamec                     | |         }t          |t                    s!t          | dt          |                     |dk     rt	          | d|           |S )z;Get and check the value of name in obj is positive integer.z must be integer: r   z must be positive integer: )
isinstanceint	TypeErrortype
ValueError)ry   rz   r+   s      r   get_positive_intr      sw    IEeS!! 944tE{{446 6 	6	77779 9 	9Lr   funcc                     |                                  } |                     d          s|                     d          rdS d| v rdS dS )z+Heuristically check function or expression.functionzasync Tz=>F)strip
startswith)r   s    r   	is_jsfuncr      sN    ::<<Dz"" dooh&?&? t	t5r   ))__doc__rm   r   loggingrQ   typingr   r   r   r   r   pyeer   r   pyppeteer.connectionr	   pyppeteer.errorsr
   r   	getLogger__name__r\   Loggerr   r7   r&   r6   r;   rB   rH   rR   unserializableValueMaprT   r_   boolfloatAbstractEventLooprx   r}   r   r   rq   r   r   <module>r      s         7 7 7 7 7 7 7 7 7 7 7 7 7 7           + + + + + + = = = = = = = =		8	$	$ S T    # c c    $ 3    &Ll Ls LX LsCx.L L L LDJ 4     
(  % % % % % %(* D     & ,  3  $cUD[1 <A 0 5>       F	$ 	c 	c 	 	 	 	C D      r   