
    'jM                         d dl Z d dlZd dlmZ g dZdZ G d d          Z G d d          Z G d	 d
          Z e            Z	dde
defdZddedefdZddedefdZdde
de
defdZeddede
fd            ZdS )    N)contextmanager)LOGGERLoggerTimerclear_filterenableexcludeincludetimer   c                   .    e Zd Zd Zd Zd ZddZd ZdS )	Filterc                 "    i | _         i | _        d S N)_include_excludeselfs    U/DATA/AppData/hermes/venv/lib/python3.11/site-packages/trame_common/utils/profiler.py__init__zFilter.__init__   s        c                     t          |          t          k     rd S |d t                   }| j                            |t	                                                    |           d S r   )lenKEY_SIZEr   
setdefaultsetaddr   headkeys      r   r
   zFilter.include   U    t99xF9H9o  cee,,0066666r   c                     t          |          t          k     rd S |d t                   }| j                            |t	                                                    |           d S r   )r   r   r   r   r   r   r   s      r   r	   zFilter.exclude   r!   r   Tc                 v    |r| j                                          |r| j                                         d S d S r   )r   clearr   )r   r
   r	   s      r   r$   zFilter.clear&   sJ     	"M!!! 	"M!!!!!	" 	"r   c                    | j         r| j        rt          |          t          k     rdS |d t                   }| j         r8| j                             |g           }|D ]}|                    |          r dS | j        sdS | j        r8| j                            |g           }|D ]}|                    |          r dS dS )NTF)r   r   r   r   get
startswith)r   msgr    exclude_setr   include_sets         r   keepzFilter.keep,   s    } 	DM 	SXX5H5H4 )8)n = 	!-++C44K# ! !>>$'' ! 55! } 	4 = 	 -++C44K#    >>$''  44  ur   NTT)__name__
__module____qualname__r   r
   r	   r$   r+    r   r   r   r      sd          7 7 77 7 7" " " "    r   r   c                   :    e Zd ZdZd ZddZej        fdZd Z	dS )	r   )abortenabledfilterlog_perflog_perf_fpsc                     t                      | _        d| _        d| _        d | _        d | _        |                                  d S )NF)r   r4   r2   r3   r5   r6   	use_printr   s    r   r   zLogger.__init__K   s@    hh
 r   r   c                     | j         rD| j                            |          r,|                     t	          j                    ||           d S d S d S r   )r3   r4   r+   r5   timeperf_counter)r   r(   durations      r   actionzLogger.actionS   s\    < 	>DK,,S11 	>MM$+--sH=====	> 	> 	> 	>r   c                 8    fd}fd}|| _         || _        | S )Nc                 D    t          |dd| dd|ddd           d S )N<60 10.3f8.2fz msTfileflushprinttsr(   dt_msrE   s      r   r5   z"Logger.use_print.<locals>.log_perfX   s@    S999r999%9999DQQQQQQr   c           
      R    t          |dd| dd|ddd|z  ddd	
           d S )Nr@   rA   rB   rC   z ms   z8.1fz fpsTrD   rG   rI   s      r   r6   z&Logger.use_print.<locals>.log_perf_fps[   s^    OOOROOOOOOuOOOO     r   )r5   r6   )r   rE   r5   r6   s    `  r   r8   zLogger.use_printW   sP    	R 	R 	R 	R 	R	 	 	 	 	 !(r   c                     ddl m                     t          j        ddd           fd}fd}|| _        || _        | S )	Nr   )loggerz[PERF] {message}TRACEztrame_lumo_view.perf)formatlevelr4   c                 8                         d|| |           d S )Nz{:<60} {:10.3f} {:8.2f} mstracerJ   r(   rK   rO   s      r   r5   z#Logger.use_loguru.<locals>.log_perfp   s"    LL5sBFFFFFr   c                 @                         d|| |d|z             d S )Nz&{:<60} {:8.3f} {:10.2f} ms {:8.1f} fpsrM   rT   rV   s      r   r6   z'Logger.use_loguru.<locals>.log_perf_fpss   s3    LL8#r5$QV,    r   )logururO   r   sysstdoutr5   r6   )r   r5   r6   rO   s      @r   
use_loguruzLogger.use_loguruf   s    !!!!!!

J%)	 	 	
 	
 	
	G 	G 	G 	G 	G	 	 	 	 	
 !(r   N)r   )
r-   r.   r/   	__slots__r   r=   rY   stderrr8   r[   r0   r   r   r   r   H   sf        JI  > > > > !Z        r   r   c                   <    e Zd ZdZddedefdZd Zd Zd Z	d	 Z
d
S )r   )r2   dtlogr(   t0Fr(   show_fpsc                 |    || _         d| _        d| _        d| _        |rt          j        nt          j        | _        d S )NFr   )r(   r2   ra   r_   r   r6   r5   r`   )r   r(   rb   s      r   r   zTimer.__init__   s8    
*2G6&&r   c                 .    |                                   d S r   )on_startr   s    r   	__enter__zTimer.__enter__   s    r   c                 .    |                                   d S r   )on_end)r   exc_typeexc_valexc_tbs       r   __exit__zTimer.__exit__   s    r   c                 6    t          j                    | _        d S r   )r:   r;   ra   r   ___s      r   re   zTimer.on_start   s    #%%r   c                     t          j                    | j        z
  dz  | _        | j        r	d| _        d S t
          j        rLt
          j                            | j	                  r*| 
                    | j        | j	        | j                   d S d S d S )N     @@F)r:   r;   ra   r_   r2   r   r3   r4   r+   r(   r`   rn   s      r   rh   zTimer.on_end   s    $&&0F:: 	1DJJJ^ 	1 2 248 < < 	1HHTWdh00000	1 	1 	1 	1r   NF)r-   r.   r/   r\   strboolr   rf   rl   re   rh   r0   r   r   r   r   }   s        3IH HC H4 H H H H    & & &1 1 1 1 1r   r   Tvaluereturnc                 B    t          |           t          _        t          S )z4Turn performance instrumentation on or off globally.)ru   r   r3   rv   s    r   r   r      s    %[[FNMr    c                 N    t           j                            |            t           S )z=Register filter to only include messages starting with value.)r   r4   r
   ry   s    r   r
   r
          
M%   Mr   c                 N    t           j                            |            t           S )z8Register filter to exclude messages starting with value.)r   r4   r	   ry   s    r   r	   r	      r|   r   r
   r	   c                 P    t           j                            | |           t           S )zClear filter.)r   r4   r$   )r
   r	   s     r   r   r      s    
M)))Mr   Flabelrb   c              #   4  K   t           j        st           V  d S t          j                    }	 t           V  t           j        rdt           _        d S t          j                    |z
  dz  }|rt                               || |           d S t                               || |           d S # t           j        rdt           _        w t          j                    |z
  dz  }|rt                               || |           w t                               || |           w xY w)NFrr   )r   r3   r:   r;   r2   r6   r5   )r   rb   ra   rK   s       r   r   r      s      >  
			B
2< 	2 FLLL&((2-7E 2##Bu55555E511111 < 	2 FLL&((2-7E 2##Bu5555E51111s   	B( (A/D)T)rz   r,   rs   )rY   r:   
contextlibr   __all__r   r   r   r   r   ru   r   rt   r
   r	   r   r   r0   r   r   <module>r      s   



  % % % % % %	 	 	 2 2 2 2 2 2 2 2j2 2 2 2 2 2 2 2j1 1 1 1 1 1 1 16 
 $ &     3      3      $       2 2 2 2 2 2 2 2 2r   