
    EgZ1                         d dl 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 Zd Zd	 Z G d
 de          Z G d d          ZdS )    N)contextmanager)Thread   )	Colorizer)create_handler_lockc                 X    t          j        |           }||                    |          fS N)r   prepare_formatcolorize)format_
ansi_levelcoloreds      D/var/www/sysmax/venv/lib/python3.11/site-packages/loguru/_handler.pyprepare_colored_formatr      s+    &w//GG$$Z0000    c                 R    t          j        |           }|                                S r	   )r   r
   strip)r   r   s     r   prepare_stripped_formatr      s     &w//G==??r   c                 >     t          j        d          |           S )N@   )maxsize)	functools	lru_cache)functions    r   memoizer      s     *9r***8444r   c                       e Zd ZdZdS )Message)recordN)__name__
__module____qualname__	__slots__ r   r   r   r      s        IIIr   r   c                       e Zd Zd Zd Zed             Zd Zd Zd Z	d Z
d Zed	             Zed
             Zd Zd Zd ZdS )Handlerc                   || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        || _        || _        d | _        i | _        d | _        d| _        t%                      | _        t)          j                    | _        d | _        d | _        d | _        d | _        d | _        d | _        | j        r;| j        rt;          t<                    | _        n_t;          t>                    | _        nE| j        r | j        D ]}|                      |           n| j        !                                | _        | j        r| j	        ItE          j#                    | _        tE          j$                    | _        tE          j%                    | _        nZ| j	        #                                | _        | j	        $                                | _        | j	        %                                | _        t%                      | _        tM          j'                    | _        tQ          | j)        dd| j        z            | _        | j        *                                 d S d S )NFTzloguru-writer-%d)targetdaemonname)+_name_sink_levelno
_formatter_is_formatter_dynamic_filter	_colorize
_serialize_enqueue_multiprocessing_context_error_interceptor_exception_formatter_id_levels_ansi_codes_decolorized_format_precolorized_formats_memoize_dynamic_format_stoppedr   _lock	threadinglocal_lock_acquired_queue_queue_lock_confirmation_event_confirmation_lock_owner_process_pid_threadr   r   r   update_formatr   multiprocessingSimpleQueueEventLockosgetpidr   _queued_writerstart)selfsinkr)   levelno	formatteris_formatter_dynamicfilter_r   	serializeenqueuemultiprocessing_contexterror_interceptorexception_formatterid_levels_ansi_codes
level_names                   r   __init__zHandler.__init__    s]   $ 

#%9"!#(?%"3$7!"3#' %'"'+$(**
'o//#' "&"&% 
	C~ P/67M/N/N,,/67N/O/O,,~ C"&"9 3 3J&&z22223 ,0?+@+@+B+B(= 	!,4-9;;+:+@+B+B(*9*>*@*@''";GGII+/+H+N+N+P+P(*.*G*L*L*N*N'244D&(ikkD#!*4>PSWS[>[  DL L     	! 	!r   c                 0    d| j         | j        | j        fz  S )Nz(id=%d, level=%d, sink=%s))r6   r,   r*   rO   s    r   __repr__zHandler.__repr__k   s    +tx
.SSSr   c              #      K   t          | j        dd          rt          d          d| j        _        	 | j        5  dV  ddd           n# 1 swxY w Y   d| j        _        dS # d| j        _        w xY w)zNAcquire the lock, but fail fast if its already acquired by the current thread.acquiredFa
  Could not acquire internal lock because it was already in use (deadlock avoided). This likely happened because the logger was re-used inside a sink, a signal handler or a '__del__' method. This is not permitted because the logger and its handlers are not re-entrant.TN)getattrr?   RuntimeErrorrb   r<   r_   s    r   _protected_lockzHandler._protected_lockn   s       4&
E:: 	/   (,$	1                 ,1D(((5D(0000s.   A& AA& AA& AA& &A4c                 
   	 | j         |d         j        k    rd S | j        |                     |          sd S | j        r|                     |          }|                                }|d         sd|d<   nD|d         \  }}	}
| j        }|                    ||	|
|          }d                    |          |d<   ||j	        |d         k    rd }|r7|| j
        s
|d         }n| j        |         }|                    |          }n| j        r| j
        s,|                     |          }|                    |          }nK|=| j        |         }|                     ||          \  }}|                    |          }n| j        |         }|                     ||          \  }}|                    |d         ||          }||d<   |                    |          }n| j
        s| j        }|                    |          }n|0| j        |         }| j        |         }|                    |          }nW| j        |         }| j        |         }| j                            |d         ||          }||d<   |                    |          }| j        r|                     ||          }t)          |          }||_        |                                 5  | j        r	 d d d            d S | j        r| j                            |           n| j                            |           d d d            d S # 1 swxY w Y   d S # t:          $ r8 | j                                        s | j                             |           Y d S w xY w)Nlevel	exception )from_decoratormessage)r   colored_message)!r,   nor/   r.   r-   copyr5   format_exceptionjoinstrippedr0   r7   r   r:   
format_mapmake_coloring_messager8   r9   r1   _serialize_recordr   r   re   r;   r2   r@   putr+   write	Exceptionr4   should_catchprint)rO   r   level_idrj   is_rawrl   dynamic_formatformatter_recordtype_valuetbrR   lines	formattedr   precomputed_format_coloring_message
str_records                      r   emitzHandler.emit   sq   R	2}vg111|'||F++ F) 9!%!8!8%{{}}+& ?02 --#)+#6 ub 5	!225%Tb2cc02 -*/G6R[K\/\/\"& (P"*$.* &y 1II!%!8!BJ / 8 8 D DII+ "P~ P)-)E)En)U)U& 2 = =>N O OII$,!%!8!BJ,0,H,HYc,d,d)A) 2 = =>N O OII!%!8!BJ484P4P&
5 51I1 (1'F'Fy)jRa (G ( ($ 3C$Y/ 2 = =>N O OII ~ P)-)A& 2 = =>N O OII$,!%!8!BJ)-)CH)M& 2 = =>N O OII!%!8!BJ)-)CH)M&'+'L'Ly)jRa (M ( ($ 3C$Y/ 2 = =>N O OI F 229fEE	 ++J &J%%'' 1 1= 1 1 1 1 1 1 1 1 = 1KOOJ////J$$Z0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  	2 	2 	2*7799 #))&111111	2sL   M  M  JM  	L3M  *<L3&M  3L77M  :L7;M   >NNc                    |                                  5  d| _        | j        r| j        t	          j                    k    r	 d d d            d S | j                            d            | j        	                                 t          | j        d          r| j                                         | j                                         d d d            d S # 1 swxY w Y   d S )NTclose)re   r;   r2   rD   rK   rL   r@   ru   rE   rp   hasattrr   r+   stopr_   s    r   r   zHandler.stop   s,   !!## 
	 
	 DM} (*bikk99	
	 
	 
	 
	 
	 
	 
	 
	
 %%%!!###4;00 (K%%'''JOO
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s   ,CA:CCCc                     | j         sd S | j        5  | j                            d           | j                                         | j                                         d d d            d S # 1 swxY w Y   d S NT)r2   rC   r@   ru   rB   waitclearr_   s    r   complete_queuezHandler.complete_queue   s    } 	F$ 	- 	-KOOD!!!$))+++$**,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AA++A/2A/c                     | j         r| j        t          j                    k    rg S | j         r| j        n|                                 }|5  | j                                        cd d d            S # 1 swxY w Y   d S r	   )r2   rD   rK   rL   rA   re   r+   tasks_to_complete)rO   locks     r   r   zHandler.tasks_to_complete   s    = 	T4	CCI#'=Ltd6J6J6L6L 	2 	2://11	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   
A00A47A4c                     | j         r| j        rd S | j        |         }| j                            |          | j        |<   d S r	   )r0   r.   r7   r-   r   r9   )rO   rz   	ansi_codes      r   rF   zHandler.update_format   sK    ~ 	!; 	F+H5	/3/G/G	/R/R"8,,,r   c                     | j         S r	   )r,   r_   s    r   rQ   zHandler.levelno   s
    }r   c                    |d         }|0|j         d n|j         j        |j        t          |j                  d}| |d         |d                                         d||d         |d         j        |d         j        d|d         |d	         j        |d	         j        |d	         j	        d
|d         |d         |d         |d         |d         j
        |d         j        d|d         j
        |d         j        d|d         |d                                         ddd}t          j        |t          d          dz   S )Nrh   )typer   	tracebackelapsed)reprsecondsextrafile)r)   pathr   rg   )iconr)   rm   linerk   moduler)   process)idr)   threadtime)r   	timestamp)r   rh   r   r   r   rg   r   rk   r   r)   r   r   r   )textr   F)defaultensure_ascii
)r   r   r   boolr   total_secondsr)   r   r   rm   r   r   jsondumpsstr)r   r   rh   serializables       r   rt   zHandler._serialize_record   so   ;'	  ) 6IN<S"!)"566 I  #9-%i0>>@@  '!'!4fVn>QRR":."7O0"7O0 /, 
 v!), *v"("3"6y@Q@VWW!'!1!4fX>N>STT!'fVn>V>V>X>XYY) 
 
4 z,%HHH4OOr   c                    d }| j         }| j        }	 	 |                                }nD# t          $ r7 |5  | j                            d            d d d            n# 1 swxY w Y   Y Ww xY w|d S |du r| j                                         }|5  	 | j        	                    |           n/# t          $ r" | j                            |j
                   Y nw xY wd d d            n# 1 swxY w Y   r   )r@   rA   getrw   r4   ry   rB   setr+   rv   r   )rO   rk   queuer   s       r   rM   zHandler._queued_writer"  s    	B))++    8 8+11$7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8
 $(,,... B BBJ$$W----  B B B+11'.AAAAABB B B B B B B B B B B B B B B	Bsh   ( A)AA)A	A)"A	#A)(A)C(B-,C(-)CC(CC((C,/C,c                     | j                                         }d |d<   d |d<   d |d<   | j        rd |d<   d |d<   d |d<   d |d<   |S )Nr<   r?   r:   r+   rE   _owner_processrA   )__dict__rn   r2   rO   states     r   __getstate__zHandler.__getstate__?  sk    ""$$g"&+/'(= 	(!E'N#E)&*E"##'E- r   c                 L   | j                             |           t                      | _        t	          j                    | _        | j        rt                      | _        | j	        r=| j
        rt          t                    | _        d S t          t                    | _        d S d S r	   )r   updater   r<   r=   r>   r?   r2   rA   r.   r0   r   r   r:   r   r   s     r   __setstate__zHandler.__setstate__K  s    U###(**
'o//= 	5244D% 	P~ P/67M/N/N,,,/67N/O/O,,,		P 	Pr   N)r   r    r!   r]   r`   r   re   r   r   r   r   rF   propertyrQ   staticmethodrt   rM   r   r   r#   r   r   r%   r%      s       I! I! I!VT T T 1 1 ^1 S2 S2 S2j  - - -2 2 2S S S   X $P $P \$PLB B B:
 
 

P 
P 
P 
P 
Pr   r%   )r   r   rG   rK   r=   
contextlibr   r   
_colorizerr   _locks_machineryr   r   r   r   r   r   r%   r#   r   r   <module>r      s             				     % % % % % %       ! ! ! ! ! ! 1 1 1 1 1 11 1 1
  
5 5 5    c   vP vP vP vP vP vP vP vP vP vPr   