
    g@                        S SK Jr  S SKrS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
JrJrJrJrJrJrJr  \\\4   r\\\\\4   rSr " S S	5      rg)
    )annotationsN)Queue)AnyUnion)Config)LifespanScopeLifespanShutdownCompleteEventLifespanShutdownEventLifespanShutdownFailedEventLifespanStartupCompleteEventLifespanStartupEventLifespanStartupFailedEventz2Got invalid state transition on lifespan protocol.c                  P    \ rS rSrS
S jrSS jrSS jrSS jrSS jrSS jr	Sr
g	)
LifespanOn   c                j   UR                   (       d  UR                  5         Xl        [        R                  " S5      U l        [        R                  " 5       U l        [        R                  " 5       U l	        [        R                  " 5       U l        SU l        SU l        SU l        SU l        0 U l        g )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     L/home/matz/Project1/venv/lib/python3.13/site-packages/uvicorn/lifespan/on.py__init__LifespanOn.__init__    sz    }}KKM''8$]]_%mmo<CMMO"#$ %'
    c                8  #    U R                   R                  S5        [        R                  " 5       nUR	                  U R                  5       5      nSS0nU R                  R                  U5      I S h  vN   U R                  R                  5       I S h  vN   U R                  (       d+  U R                  (       a=  U R                  R                  S:X  a#  U R                   R                  S5        SU l        g U R                   R                  S5        g  N N7f)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$   startupLifespanOn.startup/   s     ;<%%'!--diik: 067I.J  $$]333  %%'''4#5#5$++:N:NRV:VKKDE#DKK<= 	4's%   A2D4D5!DDB DDc                  #    U R                   (       a  g U R                  R                  S5        SS0nU R                  R	                  U5      I S h  vN   U R
                  R                  5       I S h  vN   U R                  (       d+  U R                   (       a=  U R                  R                  S:X  a#  U R                  R                  S5        SU l        g U R                  R                  S5        g  N N7f)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$   shutdownLifespanOn.shutdown@   s     <=179L0M  $$^444!!&&(((D$6$64;;;O;OSW;WKKEF#DKK=> 	5(s%   AC8C4!C84C65B C86C8c                `  #     U R                   R                  nSU R                   R                  SS.U R                  S.nU" X R                  U R
                  5      I S h  vN   U R                  R                  5         U R                  R                  5         g  N9! [         a  nS U l        SU l        U R                  (       d  U R                  (       a9   S nAU R                  R                  5         U R                  R                  5         g U R                   R                  S:X  a"  SnU R                  R!                  U5         S nANSnU R                  R#                  XCS	9   S nAGNS nAff = f! U R                  R                  5         U R                  R                  5         f = f7f)
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.   LifespanOn.mainN   sH    	&++((C"$(KK$<$<eT$E
 e\\499555 ""$##% 6 
	5DI!%D""d&:&: ""$##% {{##v-E  %%:!!#!4
	5 ""$##%sk   F.AB !B"B &5F.B 
E2'0E-E5 5F.7E-E5 E-'E5 -E22E5 56F++F.c                  #    US   S;   d   eUS   S:X  ao  U R                   R                  5       (       a   [        5       eU R                  R                  5       (       a   [        5       eU R                   R	                  5         g US   S:X  a  U R                   R                  5       (       a   [        5       eU R                  R                  5       (       a   [        5       eU R                   R	                  5         SU l        UR                  S5      (       a  U R                  R                  US   5        g g US   S:X  ao  U R                   R                  5       (       d   [        5       eU R                  R                  5       (       a   [        5       eU R                  R	                  5         g US   S:X  a  U R                   R                  5       (       d   [        5       eU R                  R                  5       (       a   [        5       eU R                  R	                  5         SU l	        UR                  S5      (       a  U R                  R                  US   5        g g g 7f)	Nr)   )lifespan.startup.completelifespan.startup.failedlifespan.shutdown.completelifespan.shutdown.failedrL   rM   TmessagerN   rO   )
r   is_setSTATE_TRANSITION_ERRORr   rE   r   getr   r2   r    )r#   rP   s     r$   rC   LifespanOn.sendf   s    v #
 
 	
 
 6?99))0022J4JJ2**1133K5KK3""$V_ 99))0022J4JJ2**1133K5KK3""$"&D{{9%%!!')"45 & V_ <<%%,,..F0FF.**1133K5KK3##%V_ ::%%,,..F0FF.**1133K5KK3##%#'D {{9%%!!')"45 & ;s   I%I'c                R   #    U R                   R                  5       I S h  vN $  N7f)N)r   rS   )r#   s    r$   rB   LifespanOn.receive   s      ''++----s   '%')r=   r   r   r   r   r!   r   r    r   r   r"   N)r   r   returnNone)rW   rX   )rP   LifespanSendMessagerW   rX   )rW   LifespanReceiveMessage)__name__
__module____qualname____firstlineno__r%   r5   r8   r.   rC   rB   __static_attributes__ 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   rZ   rY   rR   r   r`   r'   r$   <module>re      sk    "        35JJK  !#  N j. j.r'   