+
    ~j                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^RI
Ht ^RIHt  ! R R4      t ! R R	]P                  4      tR# )
    )annotationsN)Callable)utils)duplex_unixc                  R    ] tR t^tR R ltR R ltR R ltR R ltR	 R
 ltRt	R# )LogQueueListenerc                    V ^8  d   QhRRRR/# )   duplexutils.aio.duplex_unix._Duplexprepare_fncz#Callable[[logging.LogRecord], None] )formats   "q/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/agents/ipc/log_queue.py__annotate__LogQueueListener.__annotate__   s     ( (-( 9(    c                	,    R V n         Wn        W n        R # N)_thread_duplex_prepare_fnc)selfr   r   s   &&&r   __init__LogQueueListener.__init__   s    
 15'r   c                   V ^8  d   QhRR/# r
   returnNoner   )r   s   "r   r   r      s      t r   c                	    \         P                  ! V P                  R R7      V n        V P                  P	                  4        R# )ipc_log_listenertargetnameN)	threadingThread_monitorr   startr   s   &r   r(   LogQueueListener.start   s+     ''t}}CUVr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s      d r   c                	J   V P                   f   R # V P                   P                  ^R7       V P                   P                  4       '       d6   V P                  P	                  4        V P                   P                  4        MV P                  P	                  4        R V n         R # )N)timeout)r   joinis_aliver   closer)   s   &r   stopLogQueueListener.stop   sp    << 	!$<<  ""LL LLLL r   c                    V ^8  d   QhRRRR/# r
   recordzlogging.LogRecordr   r   r   )r   s   "r   r   r   .   s     " ". "4 "r   c                	    V P                  V4       \        P                  ! VP                  4      pVP	                  VP
                  4      '       g   R # VP                  V4       R # r   )r   logging	getLoggerr$   isEnabledForlevelnocallHandlers)r   r5   lgers   && r   handleLogQueueListener.handle.   sJ    &!  -  00&!r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   7   s        $  r   c                	      V P                   P                  4       p\        P                  ! T4      pT P                  T4       KE    \        P                  P                  P
                   d     R# i ; iTN)	r   
recv_bytesr   aior   DuplexClosedpickleloadsr=   )r   datar5   s   &  r   r'   LogQueueListener._monitor7   s\    ||..0 \\$'FKK	 99((55 s   A )A32A3)r   r   r   N)
__name__
__module____qualname____firstlineno__r   r(   r1   r=   r'   __static_attributes__r   r   r   r   r      s     (""   r   r   c                  r   a  ] tR t^BtRtR V 3R llt]R R l4       tR R ltR R	 lt	R
 V 3R llt
RtV ;t# )LogQueueHandlerNc                    V ^8  d   QhRRRR/# )r
   r   r   r   r   r   )r   s   "r   r   LogQueueHandler.__annotate__E   s     " "< " "r   c                	
  < \         SV `  4        Wn        \        P                  \
        R ,          ,          ! 4       V n        \        P                  ! V P                  RR7      V n
        V P                  P                  4        R # )Nipc_log_forwarderr"   )superr   r   queueSimpleQueuebytes_send_qr%   r&   _forward_logs_send_threadr(   )r   r   	__class__s   &&r   r   LogQueueHandler.__init__E   sZ    ((68%,,D4F4FM`a!r   c                   V ^8  d   QhRR/# )r
   r   zthreading.Threadr   )r   s   "r   r   rQ   M   s     ! !( !r   c                	    V P                   # r   )rZ   r)   s   &r   threadLogQueueHandler.threadL   s       r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rQ   P   s      t r   c                	     V P                   P                  4       pVf   M V P                  P                  V4       K>  V P                  P                  4        R#   \        P
                   d     K4  i ; irA   )rX   getr   
send_bytesr   rD   r0   )r   serialized_records   & r   rY   LogQueueHandler._forward_logsP   se     $ 0 0 2 (''(9: 	 ++ s   A A43A4c                    V ^8  d   QhRRRR/# r4   r   )r   s   "r   r   rQ   ]   s     % %, % %r   c                	    \         P                  ! 4       '       d   R # V P                  V4      p\        P                  ! V4      pW!n        W!n        R Vn        R Vn        VP                  Vn        R Vn	        \        VR4      '       d   R Vn        V P                  P                  \        P                  ! V4      4       R #   \          d    T P#                  T4        R # i ; i)N	websocket)sysis_finalizingr   copymessagemsgargsexc_infoexc_text
stack_infohasattrri   rX   
put_nowaitrE   dumps	ExceptionhandleError)r   r5   rn   s   && r   emitLogQueueHandler.emit]   s    	%  "" ++f%CYYv&F NJFK"FO$ooFO $F v{++#' LL##FLL$89 	%V$	%s   C B!C C"!C"c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rQ   x   s     0 0t 0r   c                	n   < \         SV `  4        V P                  P                  V P                  4       R # r   )rT   r0   rX   rt   	_sentinal)r   r[   s   &r   r0   LogQueueHandler.closex   s"    /r   )r   rX   rZ   )rI   rJ   rK   rL   r|   r   propertyr_   rY   rx   r0   rM   __classcell__)r[   s   @r   rO   rO   B   s:    I" " ! !%60 0r   rO   )
__future__r   rl   r7   rE   rU   rj   r%   collections.abcr    r   	utils.aior   r   HandlerrO   r   r   r   <module>r      s>    "     
  $  #0  0 f80goo 80r   