+
    XjF4                    2  a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ R	IHtHt ]'       dB   ^ R
I H!t! ^ RI"H#t# ^ RI$H%t% ^ RI&H't' ^ RI(H)t) ]!]#,          ]),          ]%,          ]',          t*R]+R&   ]
PX                  ]
PZ                  3t.]P                  R8X  d   ].]
P^                  3,          t.]P`                  ! R4      t1 ! R R4      t2 ! R R4      t3R# )    )annotationsN)	GeneratorSequence)
formatdate)	FrameType)TYPE_CHECKING	TypeAlias)style)asyncio_run)STARTUP_FAILUREConfig)H11Protocol)HttpToolsProtocol)WebSocketProtocol)WebSocketsSansIOProtocol)
WSProtocolr	   	Protocolswin32zuvicorn.errorc                  &    ] tR t^+tRtR R ltRtR# )ServerStatezH
Shared servers state that is available between all protocol instances.
c                   V ^8  d   QhRR/#    returnNone )formats   "j   /Users/wind/Downloads/Coruna-main学习资料A/backend/venv/lib/python3.14/site-packages/uvicorn/server.py__annotate__ServerState.__annotate__0   s     = =$ =    c                	^    ^ V n         \        4       V n        \        4       V n        . V n        R# )r   N)total_requestssetconnectionstasksdefault_headersselfs   &r   __init__ServerState.__init__0   s%    +.5.1e
:<r!   )r%   r'   r&   r#   N)__name__
__module____qualname____firstlineno____doc__r*   __static_attributes__r   r!   r   r   r   +   s    = =r!   r   c                     ] tR t^7tR R lt]P                  R R l4       tRR R lltRR R	 llt	RR
 R llt
RR R lltR R ltR R ltR R ltRR R lltR R lt]P$                  R R l4       tR R ltRtR# )Serverc                    V ^8  d   QhRRRR/# )r   configr   r   r   r   )r   s   "r   r   Server.__annotate__8   s     	/ 	/v 	/$ 	/r!   c                	v    Wn         \        4       V n        R V n        R V n        R V n        RV n        . V n        R# )Fg        N)r5   r   server_statestartedshould_exit
force_exitlast_notified_captured_signals)r)   r5   s   &&r   r*   Server.__init__8   s7    'M  ,.r!   c                   V ^8  d   QhRR/# )r   r   z
int | Noner   )r   s   "r   r   r6   D   s     i iJ ir!   c                	    V P                   P                  f   R # V P                   P                  \        P                  ! ^ V P                   P                  4      ,           # N)r5   limit_max_requestsrandomrandintlimit_max_requests_jitterr(   s   &r   rB   Server.limit_max_requestsC   s?    ;;))1{{--q$++BgBg0hhhr!   Nc                    V ^8  d   QhRRRR/# r   socketszlist[socket.socket] | Noner   r   r   )r   s   "r   r   r6   I   s     e e5 e er!   c                	l    \        V P                  VR 7      V P                  P                  4       R7      # )rI   )loop_factory)r   server5   get_loop_factoryr)   rI   s   &&r   run
Server.runI   s'    4::g:6T[[EaEaEcddr!   c                    V ^8  d   QhRRRR/# rH   r   )r   s   "r   r   r6   L   s     ' '#= ' 'r!   c                	   "   V P                  4       ;_uu_ 4        V P                  V4      G R j  xL
  R R R 4       R #  L  + '       g   i     R # ; i5irA   )capture_signals_serverO   s   &&r   rM   Server.serveL   s<     !!##++g&&& $#& $##s)   AA?A
AAA		Ac                    V ^8  d   QhRRRR/# rH   r   )r   s   "r   r   r6   P   s     U U$> U$ Ur!   c                	  "   \         P                  ! 4       pV P                  pVP                  '       g   VP	                  4        VP                  V4      V n        R pR\        RRR7      ,           R,           p\        P                  WBRV/R7       V P                  VR7      G R	j  xL
  V P                  '       g   V P                  4       G R	j  xL
  V P                  '       dS   V P                  VR7      G R	j  xL
  R
pR\        RRR7      ,           R,           p\        P                  WBRV/R7       R	# R	#  L Ll LB5i)zStarted server process [%d]zStarted server process [z%dcyan)fg]color_messageextrarK   NzFinished server process [%d]zFinished server process [)osgetpidr5   loadedloadlifespan_classlifespanr
   loggerinfostartupr:   	main_loopr9   shutdown)r)   rI   
process_idr5   messager\   s   &&    r   rU   Server._serveP   s     YY[
}}}KKM--f5/2U4F5KKcQG/OPll7l+++.."""<<<---0004G7%:PPSVVMKKO]3SKT  	,"0sB   B%E'D<(E>ED>E(E=E >?E>E Ec                    V ^8  d   QhRRRR/# rH   r   )r   s   "r   r   r6   g   s     Z Z%? Z4 Zr!   c                	x  a a"   S P                   P                  4       G R j  xL
  S P                   P                  '       d   \        P                  ! \
        4       S P                  oRR VV 3R lllp\        P                  ! 4       pVe   R R lp. S n	        V F  p\        P                  ! 4       R8H  pSP                  ^8  d   V'       d	   V! V4      pVP                  W%SP                  SP                  R7      G R j  xL
 pS P                  P!                  V4       K  	  TpEMSP"                  e   \$        P&                  ! SP"                  \$        P(                  \$        P*                  4      pVP                  W%SP                  SP                  R7      G R j  xL
 pVP,                  f   Q hVP,                  pV.S n	        EMUSP.                  e   Rp	\0        P2                  P5                  SP.                  4      '       d+   \0        P6                  ! SP.                  4      P8                  p	VP;                  VSP.                  SP                  SP                  R7      G R j  xL
 p\0        P<                  ! SP.                  V	4       VP,                  f   Q hVP,                  pV.S n	        Mk VP                  VSP>                  SP@                  SP                  SP                  R	7      G R j  xL
 pXP,                  f   Q hVP,                  pV.S n	        Vf   S PK                  V4       M R
S n&        R #  EL! ELB EL L LS  \B         d]   p
\D        PG                  T
4       S P                   PI                  4       G R j  xL 
  \        P                  ! \
        4        R p
?
LR p
?
ii ; i5i)Nc                    V ^8  d   QhRRRR/# )r   _loopz asyncio.AbstractEventLoop | Noner   zasyncio.Protocolr   )r   s   "r   r   $Server.startup.<locals>.__annotate__n   s     	 	3		r!   c                j   < SP                  SSP                  SP                  P                  V R 7      # ))r5   r8   	app_staterp   )http_protocol_classr8   rd   state)rp   r5   r)   s   &r   create_protocol'Server.startup.<locals>.create_protocoln   s9     --!..----	 .  r!   c                    V ^8  d   QhRRRR/# )r   sockzsocket.SocketTyper   r   )r   s   "r   r   rq      s     , ,',",r!   c                f    ^ RI Hp V P                  \        P                  ! 4       4      pV! V4      # )r   )	fromshare)socketr{   sharer_   r`   )ry   r{   	sock_datas   &  r   _share_socket%Server.startup.<locals>._share_socket   s&    
 - JJryy{3	 ++r!   Windows)ry   sslbacklogi  )pathr   r   )hostportr   r   TrA   )'rd   rg   r:   sysexitr   r5   asyncioget_running_loopserversplatformsystemworkerscreate_serverr   r   appendfdr|   fromfdAF_UNIXSOCK_STREAMrI   udsr_   r   existsstatst_modecreate_unix_serverchmodr   r   OSErrorre   errorri   _log_started_messager9   )r)   rI   rv   loopr   ry   
is_windowsserver	listeners	uds_permsexcr5   s   f&         @r   rg   Server.startupg   s    mm##%%%==$$$HH_%	 	 '') , >@DL%__.);
>>A%*(.D#11/RXR\R\flftft1uu##F+    IYY"==FNNF<N<NOD--ofjjbhbpbp-qqF>>---I"8DLZZ#Iww~~fjj))GGFJJ/77	22fjjfjj&.. 3  F HHVZZ+>>---I"8DL*#11#

"NN  2    >>---I"8DL?%%i0 s 	&L v r  *S!mm,,...))*s   N:MN:BN:3N:MBN:#M	$A(N:A N:-M.A
N:9AM :M;M ?AN:N:	N:N:M N72N2NN2-N:2N77N:c                    V ^8  d   QhRRRR/# )r   r   zSequence[socket.SocketType]r   r   r   )r   s   "r   r   r6      s     ! !.I !d !r!   c                	N   V P                   pVP                  e0   V^ ,          p\        P                  RVP	                  4       4       R # VP
                  e#   \        P                  RVP
                  4       R # RpVP                  f   RMVP                  pRV9   d   RpVP                  pV^ 8X  d   V^ ,          P	                  4       ^,          pVP                  '       d   RMRpR	V R
2pR	\        VRR7      ,           R
,           p	\        P                  VVVVRV	/R7       R # )Nz3Uvicorn running on socket %s (Press CTRL+C to quit)z8Uvicorn running on unix socket %s (Press CTRL+C to quit)z
%s://%s:%dz0.0.0.0:z%s://[%s]:%dhttpshttpzUvicorn running on z (Press CTRL+C to quit)T)boldr\   r]   )
r5   r   re   rf   getsocknamer   r   r   r   r
   )
r)   r   r5   ry   addr_formatr   r   protocol_namerk   r\   s
   &&        r   r   Server._log_started_message   s   99 Q<DKKE  "
 ZZ#KKRTZT^T^_ 'K & 39Dd{,;;Dqy |//1!4'-zzzGvM+K=8OPG1E+D4QQTmmMKK&6  r!   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r6      s     6 6 6r!   c                	   "   ^ pV P                  V4      G Rj  xL
 pV'       gL   V^,          pVR,          p\        P                  ! R4      G Rj  xL
  V P                  V4      G Rj  xL
 pKS  R#  LY L# L5i)r   Ni / 皙?)on_tickr   sleep)r)   counterr:   s   &  r   rh   Server.main_loop   sf      LL11qLG&G--$$$ $W 55K	  2 %5s8   A9A3A9+A9A5A9*A7+	A95A97A9c                    V ^8  d   QhRRRR/# )r   r   intr   boolr   )r   s   "r   r   r6      s      S T r!   c                	  "   V^
,          ^ 8X  d   \         P                   ! 4       p\        VRR7      P                  4       pV P                  P                  '       d   RV3.pM. pW@P                  P
                  ,           V P                  n        V P                  P                  eT   W P                  ,
          V P                  P                  8  d)   W n	        V P                  P                  4       G Rj  xL
  V P                  '       d   R# V P                  pVe4   V P                  P                  V8  d   \        P                  RV4       R# R#  L]5i)
   T)usegmts   dateNz:Maximum request limit of %d exceeded. Terminating process.F)timer   encoder5   date_headerencoded_headersr8   r'   callback_notifyr<   timeout_notifyr:   rB   r#   re   rf   )r)   r   current_timecurrent_dater   max_requestss   &&    r   r   Server.on_tick   s    R<199;L%l4@GGIL{{&&& '67 0;kk>Y>Y0YD- {{**6"4"44t{{7Q7QQ)5&++55777 ..#(9(9(H(HL(XKKTVbc 8s   C4E6E7EAEc                    V ^8  d   QhRRRR/# rH   r   )r   s   "r   r   r6     s     + +&@ +D +r!   c                	d  "   \         P                  R 4       V P                   F  pVP                  4        K  	  T;'       g    .  F  pVP                  4        K  	  \	        V P
                  P                  4       F  pVP                  4        K  	  \        P                  ! R4      G Rj  xL
   \        P                  ! V P                  4       V P                  P                  R7      G Rj  xL
  V P&                  '       g%   V P(                  P                  4       G Rj  xL
  R# R#  L L>  \        P                   df    \         P                  R\!        T P
                  P"                  4      4       T P
                  P"                   F  pTP%                  RR7       K  	   Li ; i L5i)zShutting downr   N)timeoutz=Cancel %s running task(s), timeout graceful shutdown exceededz2Task cancelled, timeout graceful shutdown exceeded)msg)re   rf   r   closelistr8   r%   ri   r   r   wait_for_wait_tasks_to_completer5   timeout_graceful_shutdownTimeoutErrorr   lenr&   cancelr;   rd   )r)   rI   r   ry   
connectionts   &&    r   ri   Server.shutdown  sO    O$ llFLLN #MMrMDJJL " t00<<=J! >mmC   	S"",,.==   --((*** # 	! ## 	SLLOD%%++, &&,,QR -	S +sb   AF0A)F0-D-.F03=D1 0D/1D1 5F0F0$F.%	F0/D1 1A7F+(F0*F++F0c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r6   -  s     ' 't 'r!   c                	  "   V P                   P                  '       dx   V P                  '       gf   R p\        P	                  V4       V P                   P                  '       d3   V P                  '       g!   \
        P                  ! R4      G Rj  xL
  KN  V P                   P                  '       dx   V P                  '       gf   Rp\        P	                  V4       V P                   P                  '       d3   V P                  '       g!   \
        P                  ! R4      G Rj  xL
  KN  V P                   F  pVP                  4       G Rj  xL
  K  	  R#  L L5 L5i)z8Waiting for connections to close. (CTRL+C to force quit)r   Nz@Waiting for background tasks to complete. (CTRL+C to force quit))
r8   r%   r;   re   rf   r   r   r&   r   wait_closed)r)   r   r   s   &  r   r   Server._wait_tasks_to_complete-  s     (((LCKK##///mmC((( """4???TCKK##)))$///mmC(((llF$$&&& # ) ) 's^   .E2E$E6EE!E2E2E7E	E"E#(EEEEEc                   V ^8  d   QhRR/# )r   r   zGenerator[None, None, None]r   )r   s   "r   r   r6   @  s     1 1!< 1r!   c              #  	  "   \         P                  ! 4       \         P                  ! 4       Jd   R x  R # \         Uu/ uF#  q\        P                  ! WP
                  4      bK%  	  pp R x  VP                  4        F  w  r\        P                  ! W4       K  	  \        V P                  4       F  p\        P                  ! V4       K  	  R # u upi   TP                  4        F  w  r\        P                  ! Y4       K  	  i ; i5irA   )
	threadingcurrent_threadmain_threadHANDLED_SIGNALSsignalhandle_exititemsreversedr=   raise_signal)r)   sigoriginal_handlershandlercaptured_signals   &    r   rT   Server.capture_signals?  s      ##%Y-B-B-DD SbbRa3&--5E5E"FFRab	, 1 7 7 9c+ !:
  ((>(>?O0  @ c !2 7 7 9c+ !:s)   ;D	)C&D	)C -A(D	1DD	c               $    V ^8  d   QhRRRRRR/# )r   r   r   framezFrameType | Noner   r   r   )r   s   "r   r   r6   S  s"     $ $s $+; $ $r!   c                	    V P                   P                  V4       V P                  '       d   V\        P                  8X  d
   R V n        R# R V n        R# )TN)r=   r   r:   r   SIGINTr;   )r)   r   r   s   &&&r   r   Server.handle_exitS  s<    %%c*v}} 4"DO#Dr!   )	r=   r5   r;   r<   rd   r8   r   r:   r9   rA   )r,   r-   r.   r/   r*   	functoolscached_propertyrB   rP   rM   rU   rg   r   rh   r   ri   r   
contextlibcontextmanagerrT   r   r1   r   r!   r   r3   r3   7   sz    	/ i i
e'U.Zx!F6<+@'$ 1 1&$ $r!   r3   )4__conditional_annotations__
__future__r   r   r   r   loggingr_   r   rC   r   r|   r   r   r   collections.abcr   r   email.utilsr   typesr   typingr   r	   uvicorn._ansir
   uvicorn._compatr   uvicorn.configr   r   uvicorn.protocols.http.h11_implr   %uvicorn.protocols.http.httptools_implr   ,uvicorn.protocols.websockets.websockets_implr   3uvicorn.protocols.websockets.websockets_sansio_implr   )uvicorn.protocols.websockets.wsproto_implr   r   __annotations__r   SIGTERMr   SIGBREAK	getLoggerre   r   r3   )r   s   @r   <module>r     s    " "     	     
   / "  +  ' 2;GN\D&)::ZGJ[[^vvIyv MM
NN <<7))O			?	+	= 	=a$ a$r!   