
    g1                         d dl Z d dlmZ d dlmZ d dlmZ d dlZd dlZd dlZd dl	Z	d dl
m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deeegef                  fdZd ZdS )    N)Mapping)Sequencewraps)Any)	Awaitable)Callable)List)Optionalc                   |     e Zd ZdZi Z fdZ fdZ fdZd Z fdZ	 fdZ
d Zd	 Zed
             Zd Z xZS )	Structurez
    This is a dict-like object structure, which you should subclass
    Only properties defined in the class context are used on initialization.

    See example
    c                     t                                                       t          |i |}|                                D ]{\  }}t	          |t
                    r                     |           |<   3t	          |t                    r.t	          |t          t          f          s fd|D              |<   v| |<   |t                      
                    d            dS )zS
        Instantiate a new instance.

        :param a:
        :param kw:
        c                 :    g | ]}                     |          S  	__class__).0iselfs     k/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/undetected_chromedriver/devtool.py
<listcomp>z&Structure.__init__.<locals>.<listcomp>*   s%    8884>>!,,888    __dict__N)super__init__dictitems
isinstancer   r   r   strbytes__setattr__)r   akwdkvr   s   `     r   r   zStructure.__init__   s     	 !NrNNGGII 	 	DAq!W%% ..++QAx(( AU|1L1L 8888a888QQJ-----r   c                 <    t          t                      |          S N)getattrr   r   itemr   s     r   __getattr__zStructure.__getattr__/   s    uww%%%r   c                 F    t                                          |          S r(   )r   __getitem__r*   s     r   r.   zStructure.__getitem__2   s    ww""4(((r   c                 2    |                      ||           d S r(   )__setitem__)r   keyvalues      r   r!   zStructure.__setattr__5   s    e$$$$$r   c                 L    t                                          ||           d S r(   )r   r0   )r   r1   r2   r   s      r   r0   zStructure.__setitem__8   s#    C'''''r   c                 :     t                      j        |i | d S r(   )r   update)r   r"   r#   r   s      r   r5   zStructure.update;   s$     R     r   c                     t          |                                          t          |                                           k    S r(   )	frozensetr   )r   others     r   __eq__zStructure.__eq__>   s-    ''9TZZ\\+B+BBBr   c                 ^    t          t          |                                                     S r(   )hashr7   r   )r   s    r   __hash__zStructure.__hash__A   s     Idjjll++,,,r   c                     i | _         d S r(   )_store)clskwargss     r   __init_subclass__zStructure.__init_subclass__D   s    


r   c                     |                                                                  D ]1\  }}t          |t                    r|                                | |<   2d S r(   )copyr   r   r   strip)r   r%   r&   s      r   _normalize_stringszStructure._normalize_stringsH   sW    IIKK%%'' 	$ 	$DAq!c## $''))Q	$ 	$r   )__name__
__module____qualname____doc__r>   r   r,   r.   r!   r0   r5   r9   r<   classmethodrA   rE   __classcell__r   s   @r   r   r      s         F. . . . .*& & & & &) ) ) ) )% % %( ( ( ( (! ! ! ! !C C C- - -   [$ $ $ $ $ $ $r   r      
on_timeoutc                       fd}|S )Nc                 B     t                      fd            }|S )Nc                     fd}t          j        |          }|                                 	  | i ||                                 S #  |                                  xY w# |                                 w xY w)Nc                  @    r             d S t          d          )Nzfunction call timed out)TimeoutError)funcrM   s   r   function_reached_timeoutzKtimeout.<locals>.wrapper.<locals>.wrapped.<locals>.function_reached_timeoutR   s1     BJt$$$$$&'@AAAr   )intervalfunction)	threadingTimerstartcancel)argsr@   rT   trS   rM   secondss       r   wrappedz)timeout.<locals>.wrapper.<locals>.wrappedP   s    B B B B B B ;STTTAGGIIItT,V,,
 



	






s   A A&&A) )A?r   )rS   r^   rM   r]   s   ` r   wrapperztimeout.<locals>.wrapperO   s>    	t	 	 	 	 	 	 
	" r   r   )r]   rM   r_   s   `` r   timeoutr`   N   s)         * Nr   c                  0  	 dd l } dd l}| j                            d|j                            |j                            t                                         dd l}dd l		 	 dd|j	        d	j
        dt          t          t          t                   gt          t                    f                  dt"          f	fd}d }fd	}t%          j        d
           |                                }|                    ddddd           |	                    d|           |j        j                  j        _         	j
                    } |||                               d           t3          j        d
                                            d S )Nr   browsernetworkperformancedriver
stop_eventon_event_corolisten_eventsc                 f    fd} j         || ||f          }|                                 d S )Nc                       fd fdfd}t          j                    }t          j        |           |                     |                       d S )Nc                    K   t           dd          rt           j        dd          r j        j                                        rtt	          d           t          j        d           d {V  t           dd          r<t           j        dd          r( j        j                                        nd S d S d S d S d S d S )NserviceFprocessz*waiting for driver service to come back ong?)r)   rm   rn   pollprintasynciosleep)rf   s   r   _ensure_service_startedzJtest.<locals>.collector.<locals>.threaded.<locals>._ensure_service_startedu   s     FIu55.	5AA. .3355.
 FGGG!---------- FIu55.	5AA. .3355. . . . . . . . . . . . .r   c                 R   K                 d {V                       |           S r(   )get_log)typrs   rf   s    r   get_log_linesz@test.<locals>.collector.<locals>.threaded.<locals>.get_log_lines   s:      --/////////~~c***r   c                    K                                    sg } 	 D ]Z}	 |  |           d {V z  } #  t          j                                                    dk    rt	          j                     Y XxY w| rr |            d {V  nS# t          $ rF}t          j                                                    dk    rt	          j                     Y d }~nd }~ww xY w                                 d S d S )N
   )is_setlogging	getLoggergetEffectiveLevel	traceback	print_exc	Exception)	log_lines_erw   ri   rh   rg   s      r   looperz9test.<locals>.collector.<locals>.threaded.<locals>.looper   sM     $++-- 2 "I2!. ) )A) )==3C3C-C-C-C-C-C-C C		)#*#4#6#6#H#H#J#Jb#P#P$-$7$9$9$9 ($ ; ;"/-	":"::::::::$ 2 2 2",..@@BBbHH%/1112 %++-- 2 2 2 2 2s+   B 5B >A53B 
C<CC)rq   new_event_loopset_event_looprun_until_complete)rf   rg   rh   r   looprs   rw   ri   s   ```  @@r   threadedz)test.<locals>.collector.<locals>.threadedt   s    . . . . .+ + + + + +2 2 2 2 2 2 2 2" )++D"4(((##FFHH-----r   )targetr[   )ThreadrY   )rf   rg   rh   ri   r   r\   rW   s      `  r   	collectorztest.<locals>.collectorn   sO    "	. "	. "	. "	. "	.H IHFJ3VWWW						r   c                 H   K   t          d           t          d|            d S )Non_eventzdata:)rp   )datas    r   r   ztest.<locals>.on_event   s*      jgtr   c                       fd}|S )Nc            	      H   t          dj        d| d|d           j        j        r\j        j                                        >t          j        d           j        j        rj        j                                        > | i |}t          d|z             |S )Nzfunc called! z	  (args: z
, kwargs: )g?zfunc completed! (result: %s))rp   rF   rm   rn   ro   timerr   )r[   r@   resrf   fns      r   r^   z*test.<locals>.func_called.<locals>.wrapped   s    E=?[[[$$$PVPVPVW   .(  V^-C-H-H-J-J-V
3 .(  V^-C-H-H-J-J-V"d%f%%C036777Jr   r   )r   r^   rf   s   ` r   func_calledztest.<locals>.func_called   s)    	 	 	 	 	 	 r   ry   )levelzgoog:loggingPrefsALL)re   rc   rd   `   )version_mainoptionszhttps://nowsecure.nl)Nrb   )sysospathinsertabspathdirname__file__undetected_chromedriverrW   ChromeEventr   r	   r
   r   r   r   r   r{   basicConfigChromeOptionsset_capabilitycommand_executor_requestgetr   rr   quit)
r   r   ucr   r   r   r   collector_stoprf   rW   s
           @@r   testr   g   s   NNNNNNNHOOArwrwx'@'@AABBB((((
 JN"G	+ +	+O+  $s)in)D EF+  	+ + + + + +Z       b!!!!  GUuQVWW   YYBY88F (3{63J3S'T'TF$$Y_&&NIfnh///
JJ%&&&JrNNN
KKMMMMMr   )rL   N)rq   collections.abcr   r   	functoolsr   r{   rW   r   r~   typingr   r   r	   r
   r   r   r   callabler`   r   r   r   r   <module>r      sA    # # # # # # $ $ $ $ $ $                                              ;$ ;$ ;$ ;$ ;$ ;$ ;$ ;$| 8HhZ_,E#F    2W W W W Wr   