
    vj                     :    d dl Z d dlZ G d d      Zd Zd Zd Zy)    Nc                   (    e Zd ZdZd Zd Zd Zd Zy)TrameServerMonitorz)Helper class capture sever state from logc                 N    || _         i | _        d| _        | j                          y )Nr   )	_log_path_last_stateportupdate)selflog_paths     >/DATA/.local/lib/python3.12/site-packages/trame/app/testing.py__init__zTrameServerMonitor.__init__   s!    !	    c                    d}t        | j                  d      5 }|j                         D ]/  }t        |       d|v rt	        |dd        | _        |d d dk(  s.|}1 	 d d d        t        j                  |dd        | _        y # 1 sw Y   'xY w)Nz	STATE: {}rSERVER_PORT:      zSTATE: )	openr   	readlinesprintintr   jsonloadsr   )r
   last_state_lineflines       r   r	   zTrameServerMonitor.update   s    %$..#&!d!T) #DIDI8y(&*O & '  ::oab&9: '&s   >BBBc                 :    | j                          | j                  S N)r	   r   )r
   s    r   	get_statezTrameServerMonitor.get_state   s    r   c                 X    | j                          | j                  j                  |      S r   )r	   r   get)r
   names     r   r!   zTrameServerMonitor.get   s"    ##D))r   N)__name__
__module____qualname____doc__r   r	   r   r!    r   r   r   r      s    3
; *r   r   c                     t        j                  |       D ]N  \  }}}d|v st         j                  j                  |d      }t        j                  |       t        d|        P y)zgSelenium capture page_url.txt which will change through
    tests and therefore we need to remove them.zpage_url.txtz - remove: N)oswalkpathjoinremover   )	base_pathrootdirsfiles	full_paths        r   remove_page_urlsr3   #   sU      WWY/dEU"T>:IIIi K	{+,	 0r   c                  F    t        dt        j                  |       d       y)zKHelper to print the server state in a way TrameServerMonitor can understandzSTATE:TflushN)r   r   dumps)kwargss    r   print_stater9   -   s    	(DJJv&d3r   c                         j                   j                  | t                j                  j	                  d       fd       }y)zCRegister state monitoring for TrameServerMonitor and port extractoron_server_readyc                  6    t        dj                  d       y )Nr   Tr5   )r   r   )r8   servers    r   print_server_portz)enable_testing.<locals>.print_server_port6   s    nfkk6r   N)statechanger9   
controlleradd)r=   state_monitorr>   s   `  r   enable_testingrD   2   sC    'FLL'4,-7 .7r   )r   r)   r   r3   r9   rD   r'   r   r   <module>rE      s$     	* *<-4
7r   