
    h
.                        S SK r S SKrS SKrS SKrS SKJrJr  S SKJrJ	r	J
r
JrJr  S SKJr  SSKJr  SSKJr  SSKJr  \(       a  S S	KJr  O S S	KJr  S
r " S S\5      rSS jr " S S\5      r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S S\5      r" " S S\"5      r# " S S\"5      r$g! \ a    \r Nuf = f)    N)ABCabstractmethod)TYPE_CHECKINGAnyListOptionalSet)URL   )PathLike)Application)Server)
SSLContext)	BaseSiteTCPSiteUnixSiteNamedPipeSiteSockSite
BaseRunner	AppRunnerServerRunnerGracefulExitc                       \ rS rSrSrSrg)r   #   r    N)__name__
__module____qualname____firstlineno__code__static_attributes__r       D/var/www/html/env/lib/python3.13/site-packages/aiohttp/web_runner.pyr   r   #   s    Dr"   r   c                      [        5       eN)r   r   r"   r#   _raise_graceful_exitr&   '   s
    
.r"   c                       \ rS rSrSrSSSS.SSS	\S
\\   S\SS4
S jjr	\
\S\4S j5       5       r\SS j5       rSS jrSrg)r   +   )_runner_ssl_context_backlog_server      N@N   shutdown_timeoutssl_contextbacklogrunnerr   r0   r1   r2   returnc                    UR                   c  [        S5      eUS:w  a"  Sn[        R                  " U[        SS9  X!l        Xl        X0l        X@l        S U l	        g )Nz(Call runner.setup() before making a siter-   z,shutdown_timeout should be set on BaseRunner   )
stacklevel)
serverRuntimeErrorwarningswarnDeprecationWarning_shutdown_timeoutr)   r*   r+   r,   )selfr3   r0   r1   r2   msgs         r#   __init__BaseSite.__init__.   sU     == IJJt#@CMM#1a@'7$'9=r"   c                     g r%   r   r>   s    r#   nameBaseSite.nameA   s     	r"   c                 B   #    U R                   R                  U 5        g 7fr%   )r)   	_reg_siterC   s    r#   startBaseSite.startF   s     t$s   c                    #    U R                   R                  U 5        U R                  b  U R                  R                  5         U R                   R	                  U 5        g 7fr%   )r)   _check_siter,   close_unreg_siterC   s    r#   stopBaseSite.stopJ   sC       &<<#LL   &s   AA!)r+   r)   r,   r*   r4   N)r   r   r   r   	__slots__floatr   r   intr@   propertyr   strrD   rH   rN   r!   r   r"   r#   r   r   +   s    BI #',0>>  	>
 j)> > 
>& c    % %'r"   r   c                      ^  \ rS rSrSr  SSSSSSS.SSS	\\   S
\\   S\S\\	   S\S\\
   S\\
   SS4U 4S jjjjr\S\4S j5       rSU 4S jjrSrU =r$ )r   R   )_host_port_reuse_address_reuse_portNr-   r.   )r0   r1   r2   reuse_address
reuse_portr3   r   hostportr0   r1   r2   r\   r]   r4   c                   > [         T	U ]  UUUUS9  X l        Uc  U R                  (       a  SOSnX0l        Xpl        Xl        g )Nr/   i   i  )superr@   rX   r*   rY   rZ   r[   )
r>   r3   r^   r_   r0   r1   r2   r\   r]   	__class__s
            r#   r@   TCPSite.__init__U   sO     	-#	 	 	
 
<,,4$D
+%r"   c                     U R                   (       a  SOSnU R                  (       d  SOU R                  n[        [        R                  " XU R
                  S95      $ )Nhttpshttpz0.0.0.0schemer^   r_   )r*   rX   rU   r
   buildrY   )r>   rh   r^   s      r#   rD   TCPSite.namen   s<     --6 $

y

399FDJJGHHr"   c           
      ^  >#    [         TU ]  5       I S h  vN   [        R                  " 5       nU R                  R
                  nUc   eUR                  UU R                  U R                  U R                  U R                  U R                  U R                  S9I S h  vN U l        g  N N7f)N)sslr2   r\   r]   )ra   rH   asyncioget_event_loopr)   r8   create_serverrX   rY   r*   r+   rZ   r[   r,   r>   loopr8   rb   s      r#   rH   TCPSite.startt   s     gmo%%'$$!!!!//JJJJ!!MM--'' 0 
 
	 	
s"   B-B)BB-B+B-+B-)rX   rY   rZ   r[   r,   )NNrP   )r   r   r   r   rQ   r   rU   rS   rR   r   boolr@   rT   rD   rH   r!   __classcell__rb   s   @r#   r   r   R   s    CI
 #"	& #',0(,%)&& sm& sm	&  & j)& &  ~& TN& 
& &2 Ic I I

 
r"   r   c                      ^  \ rS rSrSrSSSS.SSS	\S
\S\\   S\	SS4U 4S jjjr
\S\4S j5       rSU 4S jjrSrU =r$ )r      _pathr-   Nr.   r/   r3   r   pathr0   r1   r2   r4   c                2   > [         TU ]  UUUUS9  X l        g )Nr/   )ra   r@   ry   )r>   r3   rz   r0   r1   r2   rb   s         r#   r@   UnixSite.__init__   s*     	-#	 	 	
 
r"   c                 P    U R                   (       a  SOSnU SU R                   S3$ )Nre   rf   ://unix::)r*   ry   )r>   rh   s     r#   rD   UnixSite.name   s(     --6$**Q//r"   c                   >#    [         TU ]  5       I S h  vN   [        R                  " 5       nU R                  R
                  nUc   eUR                  UU R                  U R                  U R                  S9I S h  vN U l
        g  Nr N7f)N)rl   r2   )ra   rH   rm   rn   r)   r8   create_unix_serverry   r*   r+   r,   rp   s      r#   rH   UnixSite.start   s~     gmo%%'$$!!!!44JJ!!MM	 5 
 
	 	
s"   BBA'B=B
>B
Bry   r,   rP   )r   r   r   r   rQ   r   rR   r   r   rS   r@   rT   rU   rD   rH   r!   rt   ru   s   @r#   r   r      s    I #',0 
   j)  
 " 0c 0 0

 

r"   r   c            	       p   ^  \ rS rSrSrSS.SSS\S\S	S
4U 4S jjjr\S	\4S j5       r	SU 4S jjr
SrU =r$ )r      rx   r-   r0   r3   r   rz   r0   r4   Nc                   > [         R                  " 5       n[        U[         R                  5      (       d  [	        S5      e[
        TU ]  XS9  X l        g )Nz9Named Pipes only available in proactor loop under windowsr   )rm   rn   
isinstanceProactorEventLoopr9   ra   r@   ry   )r>   r3   rz   r0   rq   rb   s        r#   r@   NamedPipeSite.__init__   sT     %%''++
 
 K  	C
r"   c                     U R                   $ r%   rx   rC   s    r#   rD   NamedPipeSite.name       zzr"   c                    >#    [         TU ]  5       I S h  vN   [        R                  " 5       nU R                  R
                  nUc   eUR                  X R                  5      I S h  vN nUS   U l        g  Nb N7fNr   )	ra   rH   rm   rn   r)   r8   start_serving_pipery   r,   )r>   rq   r8   r,   rb   s       r#   rH   NamedPipeSite.start   sq     gmo%%'$$!!!//JJ
 
 qz 	
s"   A<A8AA<(A:)A<:A<r   rP   )r   r   r   r   rQ   rU   rR   r@   rT   rD   rH   r!   rt   ru   s   @r#   r   r      s^    I MQ"*-DI	  c  " "r"   r   c                      ^  \ rS rSrSrSSSS.SSS	\R
                  S
\S\\   S\	SS4U 4S jjjr
\S\4S j5       rSU 4S jjrSrU =r$ )r      )_sock_namer-   Nr.   r/   r3   r   sockr0   r1   r2   r4   c                b  > [         T
U ]  UUUUS9  X l        U R                  (       a  SOSn[	        [
        S5      (       a5  UR                  [
        R                  :X  a  U SUR                  5        S3nO3UR                  5       S S u  p[        [        R                  " XhU	S95      nXpl        g )	Nr/   re   rf   AF_UNIXr~   r   r6   rg   )ra   r@   r   r*   hasattrsocketfamilyr   getsocknamerU   r
   ri   r   )r>   r3   r   r0   r1   r2   rh   rD   r^   r_   rb   s             r#   r@   SockSite.__init__   s     	-#	 	 	
 
 --669%%$++*GXXd&6&6&8%9;D))+BQ/JDsyyEFD
r"   c                     U R                   $ r%   )r   rC   s    r#   rD   SockSite.name   r   r"   c                   >#    [         TU ]  5       I S h  vN   [        R                  " 5       nU R                  R
                  nUc   eUR                  X R                  U R                  U R                  S9I S h  vN U l
        g  Nq N7f)N)r   rl   r2   )ra   rH   rm   rn   r)   r8   ro   r   r*   r+   r,   rp   s      r#   rH   SockSite.start   sy     gmo%%'$$!!!!//):):DMM 0 
 
	 	
s"   BBA&B<B	=B	B)r   r,   r   rP   )r   r   r   r   rQ   r   rR   r   r   rS   r@   rT   rU   rD   rH   r!   rt   ru   s   @r#   r   r      s    "I #',0 mm
   j)  
 0 c  
 
r"   r   c            	           \ rS rSrSrSSS.S\S\S\S	S
4S jjr\	S	\
\   4S j5       r\	S	\\   4S j5       r\	S	\\   4S j5       rSS jr\SS j5       rSS jr\S	\4S j5       r\SS j5       rS\S	S
4S jrS\S	S
4S jrS\S	S
4S jrSrg
)r      _handle_signals_kwargsr,   _sitesr=   Fr-   )handle_signalsr0   r   r0   kwargsr4   Nc                D    Xl         X0l        S U l        / U l        X l        g r%   r   )r>   r   r0   r   s       r#   r@   BaseRunner.__init__   s#      .)-&(!1r"   c                     U R                   $ r%   )r,   rC   s    r#   r8   BaseRunner.server  s    ||r"   c                     / nU R                    HM  nUR                  nUc  M  UR                  nUc  M%  U H"  nUR                  UR	                  5       5        M$     MO     U$ r%   )r   r,   socketsappendr   )r>   retsiter8   r   r   s         r#   	addressesBaseRunner.addresses  sY    KKD\\F! ..& '

4#3#3#56 !(   
r"   c                 ,    [        U R                  5      $ r%   )setr   rC   s    r#   sitesBaseRunner.sites  s    4;;r"   c                 H  #    [         R                  " 5       nU R                  (       aI   UR                  [        R
                  [        5        UR                  [        R                  [        5        U R                  5       I S h  vN U l
        g ! [         a     N*f = f N7fr%   )rm   rn   r   add_signal_handlersignalSIGINTr&   SIGTERMNotImplementedError_make_serverr,   r>   rq   s     r#   setupBaseRunner.setup  sy     %%'''7KL''8LM
 "..00	 '  1s5   'B"AB 2B"B 
B"
BB"BB"c                    #    g7f)z8Call any shutdown hooks to help server close gracefully.Nr   rC   s    r#   shutdownBaseRunner.shutdown#  s        c                   #    [        U R                  5       H  nUR                  5       I S h  vN   M     U R                  (       a}  [        R
                  " S5      I S h  vN   U R                  R                  5         U R                  5       I S h  vN   U R                  R                  U R                  5      I S h  vN   U R                  5       I S h  vN   S U l        U R                  (       aU  [        R                  " 5       n UR                  [        R                  5        UR                  [        R                  5        g g  GN N N N N{! [          a     g f = f7fr   )listr   rN   r,   rm   sleeppre_shutdownr   r=   _cleanup_serverr   get_running_loopremove_signal_handlerr   r   r   r   )r>   r   rq   s      r#   cleanupBaseRunner.cleanup'  s    
 %D))+ & << --"""LL%%'--/!!,,''(>(>???""$$$++-D**6==9**6>>:	   
 #!?$ ' s{   ,E&E2E&!E"1E&E,E& EE&E1E&>E 	E&E&E&E&E&
E# E&"E##E&c                    #    g 7fr%   r   rC   s    r#   r   BaseRunner._make_serverB       r   c                    #    g 7fr%   r   rC   s    r#   r   BaseRunner._cleanup_serverF  r   r   r   c                 z    XR                   ;   a  [        SU SU  35      eU R                   R                  U5        g )NSite z! is already registered in runner )r   r9   r   r>   r   s     r#   rG   BaseRunner._reg_siteJ  s7    ;;tf,MdVTUU4 r"   c                 D    XR                   ;  a  [        SU SU  35      eg Nr   z is not registered in runner )r   r9   r   s     r#   rK   BaseRunner._check_siteO  s*    {{"tf,I$PQQ #r"   c                 z    XR                   ;  a  [        SU SU  35      eU R                   R                  U5        g r   )r   r9   remover   s     r#   rM   BaseRunner._unreg_siteS  s7    {{"tf,I$PQQ4 r"   )r   r   r,   r=   r   rP   )r   r   r   r   rQ   rs   rR   r   r@   rT   r   r   r8   r   r   r	   r   r   r   r   r   r   r   r   rG   rK   rM   r!   r   r"   r#   r   r      s%   XI
  %"&	2 2  	2
 2 
2 (   	49 	 	  s8}    1 G G6 F    !h !4 !
R RT R! !T !r"   r   c            	       n   ^  \ rS rSrSrSrSS.S\S\S\S	S
4U 4S jjjr	SS jr
S	\4S jrSS jrSrU =r$ )r   iY  zLow-level web server runner_web_serverFr   
web_serverr   r   r4   Nc                6   > [         TU ]  " SSU0UD6  Xl        g )Nr   r   )ra   r@   r   )r>   r   r   r   rb   s       r#   r@   ServerRunner.__init__^  s      	AA&A%r"   c                    #    g 7fr%   r   rC   s    r#   r   ServerRunner.shutdownd       r   c                 "   #    U R                   $ 7fr%   r   rC   s    r#   r   ServerRunner._make_serverg  s     s   c                    #    g 7fr%   r   rC   s    r#   r   ServerRunner._cleanup_serverj  r   r   rP   )r   r   r   r   __doc__rQ   r   rs   r   r@   r   r   r   r!   rt   ru   s   @r#   r   r   Y  sV    % I =B& &59&MP&	& & F   r"   r   c            	          ^  \ rS rSrSrSrSS.S\S\S\S	S
4U 4S jjjr	\
S	\4S j5       rSS jrS	\4S jrSS jrSrU =r$ )r   in  zWeb Application runner_appFr   appr   r   r4   Nc                   > [         TU ]  " SSU0UD6  [        U[        5      (       d  [	        SR                  U5      5      eXl        g )Nr   z?The first argument should be web.Application instance, got {!r}r   )ra   r@   r   r   	TypeErrorformatr   )r>   r   r   r   rb   s       r#   r@   AppRunner.__init__s  sI     	AA&A#{++%%+VC[  	r"   c                     U R                   $ r%   r   rC   s    r#   r   AppRunner.app~  s    yyr"   c                 T   #    U R                   R                  5       I S h  vN   g  N7fr%   )r   r   rC   s    r#   r   AppRunner.shutdown  s     ii  """   (&(c                 ~  #    [         R                  " 5       nU R                  R                  U5        U R                  R                  R                  5         U R                  R                  5       I S h  vN   U R                  R                  5         U R                  R                  " SSU0U R                  D6$  NF7f)Nrq   r   )	rm   rn   r   	_set_loop
on_startupfreezestartup_make_handlerr   r   s     r#   r   AppRunner._make_server  s     %%'		D!		##%ii!!!		yy&&ADADLLAA 	"s   A2B=4B;5AB=c                 T   #    U R                   R                  5       I S h  vN   g  N7fr%   )r   r   rC   s    r#   r   AppRunner._cleanup_server  s     ii!!!r   rP   )r   r   r   r   r   rQ   r   rs   r   r@   rT   r   r   r   r   r   r!   rt   ru   s   @r#   r   r   n  ss     I ;@		37	KN			 	 [  #BF B" "r"   r   rP   )%rm   r   r   r:   abcr   r   typingr   r   r   r   r	   yarlr
   typedefsr   web_appr   r   r   rl   r   ImportErrorobject__all__
SystemExitr   r&   r   r   r   r   r   r   r   r   r   r"   r#   <module>r     s        # : :     "
: $'s $'N/
h /
d#
x #
L"H ">&
x &
Rd! d!N: *!"
 !"w
  
s   B? ?C
	C
