
    9Cg@                        d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZ eeef         Zeeeeef         ZdZ G d d	          ZdS )
    )annotationsN)Queue)AnyUnion)Config)LifespanScopeLifespanShutdownCompleteEventLifespanShutdownEventLifespanShutdownFailedEventLifespanStartupCompleteEventLifespanStartupEventLifespanStartupFailedEventz2Got invalid state transition on lifespan protocol.c                  >    e Zd ZddZddZddZddZddZddZdS )
LifespanOnconfigr   returnNonec                R   |j         s|                                 || _        t          j        d          | _        t          j                    | _        t          j                    | _	        t          j
                    | _        d| _        d| _        d| _        d| _        i | _        d S )Nzuvicorn.errorF)loadedloadr   logging	getLoggerloggerasyncioEventstartup_eventshutdown_eventr   receive_queueerror_occuredstartup_failedshutdown_failedshould_exitstate)selfr   s     E/var/www/api/venv/lib/python3.11/site-packages/uvicorn/lifespan/on.py__init__zLifespanOn.__init__    s    } 	KKMMM'88$]__%moo<CMOO"#$ %'


    c                  K   | j                             d           t          j                    }|                    |                                           }ddi}| j                            |           d {V  | j        	                                 d {V  | j
        s| j        r3| j        j        dk    r#| j                             d           d| _        d S | j                             d           d S )Nz Waiting for application startup.typezlifespan.startuponz$Application startup failed. Exiting.TzApplication startup complete.)r   infor   get_event_loopcreate_taskmainr   putr   waitr    r   r   lifespanerrorr"   )r$   loopmain_lifespan_taskr   s       r%   startupzLifespanOn.startup/   s     ;<<<%''!--diikk:: 067I.J $$]333333333 %%''''''''' 	>4#5 	>$+:NRV:V:VKDEEE#DK<=====r'   c                  K   | j         rd S | j                            d           ddi}| j                            |           d {V  | j                                         d {V  | j        s| j         r3| j        j	        dk    r#| j        
                    d           d| _        d S | j                            d           d S )Nz!Waiting for application shutdown.r)   zlifespan.shutdownr*   z%Application shutdown failed. Exiting.TzApplication shutdown complete.)r   r   r+   r   r/   r   r0   r!   r   r1   r2   r"   )r$   r   s     r%   shutdownzLifespanOn.shutdown@   s       	F<===179L0M $$^444444444!&&((((((((( 	?D$6 	?4;;OSW;W;WKEFFF#DK=>>>>>r'   c                  K   	 | j         j        }d| j         j        dd| j        d} ||| j        | j                   d {V  n# t          $ r}d | _        d| _        | j	        s| j
        r8Y d }~| j                                         | j                                         d S | j         j        dk    rd}| j                            |           nd}| j                            ||	           Y d }~nd }~ww xY w| j                                         | j                                         d S # | j                                         | j                                         w xY w)
Nr1   z2.0)versionspec_version)r)   asgir#   Tautoz-ASGI 'lifespan' protocol appears unsupported.z!Exception in 'lifespan' protocol
)exc_info)r   
loaded_appasgi_versionr#   receivesendBaseExceptionr;   r   r    r!   r   setr   r1   r   r+   r2   )r$   appscopeexcmsgs        r%   r.   zLifespanOn.mainN   s     	&+(C"$(K$<eTT$ $E
 #eT\495555555555 
	5 
	5 
	5DI!%D" d&:  ""$$$##%%%%% {#v--E  %%%%:!!#!444
	5 ""$$$##%%%%% ""$$$##%%%%s=   AA D0 
C9C4,D0 $AC4/D0 4C99D0 04E$messageLifespanSendMessagec                  K   |d         dv sJ |d         dk    rk| j                                         rJ t                      | j                                        rJ t                      | j                                          d S |d         dk    r| j                                         rJ t                      | j                                        rJ t                      | j                                          d| _        |                    d          r"| j                            |d                    d S d S |d         dk    rk| j                                         sJ t                      | j                                        rJ t                      | j                                         d S |d         dk    r| j                                         sJ t                      | j                                        rJ t                      | j                                         d| _	        |                    d          r$| j                            |d                    d S d S d S )	Nr)   )lifespan.startup.completelifespan.startup.failedlifespan.shutdown.completelifespan.shutdown.failedrK   rL   TrH   rM   rN   )
r   is_setSTATE_TRANSITION_ERRORr   rC   r    getr   r2   r!   )r$   rH   s     r%   rA   zLifespanOn.sendf   s     v #
 
 
 
 
 6?999)0022JJ4JJJJ*1133KK5KKKK""$$$$$V_ 999)0022JJ4JJJJ*1133KK5KKKK""$$$"&D{{9%% 6!!')"4555556 6 V_ <<<%,,..FF0FFFF*1133KK5KKKK##%%%%%V_ :::%,,..FF0FFFF*1133KK5KKKK##%%%#'D {{9%% 6!!')"455555 ;:
6 6r'   LifespanReceiveMessagec                D   K   | j                                          d {V S )N)r   rQ   )r$   s    r%   r@   zLifespanOn.receive   s-      '++---------r'   N)r   r   r   r   )r   r   )rH   rI   r   r   )r   rR   )	__name__
__module____qualname__r&   r5   r7   r.   rA   r@    r'   r%   r   r      s        ( ( ( (> > > >"? ? ? ?& & & &0 6  6  6  6D. . . . . .r'   r   )
__future__r   r   r   r   typingr   r   uvicornr   uvicorn._typesr   r	   r
   r   r   r   r   rR   rI   rP   r   rW   r'   r%   <module>r\      s4   " " " " " "                                        35JJK  !#  N j. j. j. j. j. j. j. j. j. j.r'   