
    Eg                         d dl Z d dlZd dlZddlmZmZ  G d d          Z G d d          Z G d d	          Z G d
 d          Z	dS )    N   )get_running_loopget_task_loopc                   &    e Zd Zd Zd Zd Zd ZdS )
StreamSinkc                     || _         t          t          |dd                     | _        t          t          |dd                     | _        t          j        t          |dd                     | _        d S )Nflushstopcomplete)_streamcallablegetattr
_flushable
_stoppableasyncioiscoroutinefunction_completable)selfstreams     I/var/www/sysmax/venv/lib/python3.11/site-packages/loguru/_simple_sinks.py__init__zStreamSink.__init__	   se    "767D#A#ABB"7664#@#@AA#7
TX8Y8YZZ    c                 ~    | j                             |           | j        r| j                                          d S d S N)r   writer   r	   r   messages     r   r   zStreamSink.write   sF    7###? 	!L     	! 	!r   c                 J    | j         r| j                                         d S d S r   )r   r   r
   r   s    r   r
   zStreamSink.stop   s0    ? 	 L	  	 r   c                 H    | j         sg S | j                                        gS r   )r   r   r   r   s    r   tasks_to_completezStreamSink.tasks_to_complete   s)      	I%%''((r   N__name__
__module____qualname__r   r   r
   r!    r   r   r   r      sS        [ [ [! ! !
     ) ) ) ) )r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )StandardSinkc                     || _         d S r   )_handler)r   handlers     r   r   zStandardSink.__init__   s    r   c                 p   |j         }t          |          }|d         }t          j                                        |d         |d         j        |d         j        |d         |d|r|j        |j        |j	        fnd |d         d|d         i	  	        }|rd	|_
        | j                            |           d S )
N	exceptionnamelevelfileliner&   functionextra
)recordstrlogging	getLogger
makeRecordnopathtypevalue	tracebackexc_textr*   handle)r   r   r5   excs       r   r   zStandardSink.write"   s    g,,[!"$$//6N7O6N6N47ASXsy#-00T:fWo&

 

  	#"FOV$$$$$r   c                 8    | j                                          d S r   )r*   closer   s    r   r
   zStandardSink.stop5   s    r   c                     g S r   r&   r   s    r   r!   zStandardSink.tasks_to_complete8       	r   Nr"   r&   r   r   r(   r(      sP             % % %&      r   r(   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )		AsyncSinkc                 `    || _         || _        || _        t          j                    | _        d S r   )	_function_loop_error_interceptorweakrefWeakSet_tasks)r   r2   looperror_interceptors       r   r   zAsyncSink.__init__=   s+    !
"3o''r   c                     	  j         pt                      }n# t          $ r Y d S w xY w                               }|                    |          } fd}|                    |            j                            |           d S )Nc                    |                                  s|                                 d S j                                        s|                                 j                            j        |                                            d S )N)r-   )	cancelledr-   rK   should_catchprintr5   )futurer   r   s    r   check_exceptionz(AsyncSink.write.<locals>.check_exceptionL   s    !! V%5%5%7%7%?*7799 )&&(((#))'.FDTDTDVDV)WWWWWr   )rJ   r   RuntimeErrorrI   create_taskadd_done_callbackrN   add)r   r   rO   	coroutinetaskrW   s   ``    r   r   zAsyncSink.writeC   s    	:3!1!3!3DD 	 	 	FF	 NN7++		**	X 	X 	X 	X 	X 	X 	///s    
((c                 B    | j         D ]}|                                 d S r   )rN   cancel)r   r]   s     r   r
   zAsyncSink.stopV   s,    K 	 	DKKMMMM	 	r   c                 *      fd j         D             S )Nc                 :    g | ]}                     |          S r&   )_complete_task).0r]   r   s     r   
<listcomp>z/AsyncSink.tasks_to_complete.<locals>.<listcomp>`   s'    BBBd##D))BBBr   )rN   r   s   `r   r!   zAsyncSink.tasks_to_completeZ   s"     CBBBdkBBBBr   c                    K   t                      }t          |          |urd S 	 | d {V  d S # t          $ r Y d S w xY wr   )r   r   	Exception)r   r]   rO   s      r   rb   zAsyncSink._complete_taskb   se      !!d**F	JJJJJJJJJ 	 	 	DD	s   / 
==c                 B    | j                                         }d |d<   |S )NrN   )__dict__copyr   states     r   __getstate__zAsyncSink.__getstate__k   s#    ""$$hr   c                 j    | j                             |           t          j                    | _        d S r   )rh   updaterL   rM   rN   rj   s     r   __setstate__zAsyncSink.__setstate__p   s+    U###o''r   N)
r#   r$   r%   r   r   r
   r!   rb   rl   ro   r&   r   r   rG   rG   <   s        ( ( (  &  C C C    
( ( ( ( (r   rG   c                   &    e Zd Zd Zd Zd Zd ZdS )CallableSinkc                     || _         d S r   rI   )r   r2   s     r   r   zCallableSink.__init__v   s    !r   c                 0    |                      |           d S r   rs   r   s     r   r   zCallableSink.writey   s    wr   c                     d S r   r&   r   s    r   r
   zCallableSink.stop|   s    r   c                     g S r   r&   r   s    r   r!   zCallableSink.tasks_to_complete   rE   r   Nr"   r&   r   r   rq   rq   u   sP        " " "           r   rq   )
r   r7   rL   _asyncio_loopr   r   r   r(   rG   rq   r&   r   r   <module>rx      s       : : : : : : : :) ) ) ) ) ) ) ),       <6( 6( 6( 6( 6( 6( 6( 6(r         r   