
    ,h@                        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y)
    )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y)
LifespanOnc                Z   |j                   s|j                          || _        t        j                  d      | _        t        j                         | _        t        j                         | _	        t        j                         | _        d| _        d| _        d| _        d| _        i | _        y )Nzuvicorn.errorF)loadedloadconfiglogging	getLoggerloggerasyncioEventstartup_eventshutdown_eventr   receive_queueerror_occuredstartup_failedshutdown_failedshould_exitstate)selfr   s     U/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/uvicorn/lifespan/on.py__init__zLifespanOn.__init__    s|    }}KKM''8$]]_%mmo<CMMO"#$ %'
    c                   K   | j                   j                  d       t        j                         }|j	                  | j                               }ddi}| j                  j                  |       d {    | j                  j                          d {    | j                  s%| j                  r<| j                  j                  dk(  r#| j                   j                  d       d| _        y | j                   j                  d       y 7 7 vw)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     ;<%%'!--diik: 067I.J  $$]333  %%'''4#5#5$++:N:NRV:VKKDE#DKK<= 	4's%   A1D3D
4!DDA5DDc                  K   | j                   ry | j                  j                  d       ddi}| j                  j	                  |       d {    | j
                  j                          d {    | j                  s%| j                   r<| j                  j                  dk(  r#| j                  j                  d       d| _        y | j                  j                  d       y 7 7 vw)Nz!Waiting for application shutdown.r'   zlifespan.shutdownr(   z%Application shutdown failed. Exiting.TzApplication shutdown complete.)r   r   r)   r   r-   r   r.   r   r   r/   r0   r    )r"   r   s     r#   shutdownzLifespanOn.shutdown@   s     <=179L0M  $$^444!!&&(((D$6$64;;;O;OSW;WKKEF#DKK=> 	5(s%   AC(C$!C(/C&0A5C(&C(c                H  K   	 | j                   j                  }d| j                   j                  dd| j                  d} ||| j                  | j
                         d {    | j                  j                          | j                  j                          y 7 9# t        $ r}d | _        d| _        | j                  s| j                  r9Y d }~| j                  j                          | j                  j                          y | j                   j                  dk(  rd}| j                  j!                  |       nd}| j                  j#                  ||	       Y d }~d }~ww xY w# | j                  j                          | j                  j                          w xY ww)
Nr/   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BaseExceptionr9   r   r   r   r   setr   r/   r   r)   r0   )r"   appscopeexcmsgs        r#   r,   zLifespanOn.mainN   sK    	&++((C"$(KK$<$<eT$E
 eT\\499555 ""$##% 6 
	5DI!%D""d&:&: ""$##% {{##v-E  %:!!#!4
	5 ""$##%s`   F"AB "B#B '5F"B 	E&'&E!E) 5F"AE!E) !E&&E) )6FF"c                b  K   |d   dv sJ |d   dk(  re| j                   j                         rJ t               | j                  j                         rJ t               | j                   j	                          y |d   dk(  r| j                   j                         rJ t               | j                  j                         rJ t               | j                   j	                          d| _        |j                  d      r| j                  j                  |d          y y |d   dk(  re| j                   j                         sJ t               | j                  j                         rJ t               | j                  j	                          y |d   dk(  r| j                   j                         sJ t               | j                  j                         rJ t               | j                  j	                          d| _	        |j                  d      r| j                  j                  |d          y y y w)	Nr'   )lifespan.startup.completelifespan.startup.failedlifespan.shutdown.completelifespan.shutdown.failedrG   rH   TmessagerI   rJ   )
r   is_setSTATE_TRANSITION_ERRORr   rA   r   getr   r0   r   )r"   rK   s     r#   r?   zLifespanOn.sendf   s    v #
 
 	
 6?99))002J4JJ**113K5KK""$V_ 99))002J4JJ**113K5KK""$"&D{{9%!!')"45 & V_ <<%%,,.F0FF**113K5KK##%V_ ::%%,,.F0FF**113K5KK##%#'D {{9%!!')"45 & ;s   H-H/c                R   K   | j                   j                          d {   S 7 w)N)r   rN   )r"   s    r#   r>   zLifespanOn.receive   s!     ''++----s   '%'N)r   r   returnNone)rP   rQ   )rK   LifespanSendMessagerP   rQ   )rP   LifespanReceiveMessage)	__name__
__module____qualname__r$   r3   r5   r,   r?   r>    r%   r#   r   r      s!    (>"?&0 6D.r%   r   )
__future__r   r   r   r   typingr   r   uvicornr   uvicorn._typesr   r	   r
   r   r   r   r   rS   rR   rM   r   rW   r%   r#   <module>r\      sk    "        35JJK  !#  N j. j.r%   