
    bCi.                        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Jr  S SKJr  SSKJr  SSKJr  SSKJr   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)Any	AwaitableCallable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       L/home/james-whalen/.local/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   r1   r2   r3   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-   )selfr4   r1   r2   r3   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.name?   s     	r#   c                 B   #    U R                   R                  U 5        g 7fr&   )r*   	_reg_siterD   s    r$   startBaseSite.startD   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_siterD   s    r$   stopBaseSite.stopH   sC       &<<#LL   &s   AA!)r,   r*   r-   r+   r5   N)r   r   r   r    	__slots__floatr	   r   intrA   propertyr   strrE   rI   rO   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   P   )_host_port_reuse_address_reuse_portNr.   r/   )r1   r2   r3   reuse_address
reuse_portr4   r   hostportr1   r2   r3   r]   r^   r5   c                   > [         T	U ]  UUUUS9  X l        Uc  U R                  (       a  SOSnX0l        Xpl        Xl        g )Nr0   i   i  )superrA   rY   r+   rZ   r[   r\   )
r?   r4   r_   r`   r1   r2   r3   r]   r^   	__class__s
            r$   rA   TCPSite.__init__S   sO     	-#	 	 	
 
<,,4$D
+%r#   c                     U R                   (       a  SOSnU R                  c  SOU R                  n[        [        R                  " XU R
                  S95      $ )Nhttpshttpz0.0.0.0schemer_   r`   )r+   rY   rV   r   buildrZ   )r?   ri   r_   s      r$   rE   TCPSite.namel   s?     --6 JJ.yDJJ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)sslr3   r]   r^   )rb   rI   asyncioget_event_loopr*   r9   create_serverrY   rZ   r+   r,   r[   r\   r-   r?   loopr9   rc   s      r$   rI   TCPSite.startr   s     gmo%%'$$!!!!//JJJJ!!MM--'' 0 
 
	 	
s"   B-B)BB-B+B-+B-)rY   rZ   r[   r\   r-   )NNrQ   )r   r   r   r    rR   r	   rV   rT   rS   r   boolrA   rU   rE   rI   r"   __classcell__rc   s   @r$   r   r   P   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/   r0   r4   r   pathr1   r2   r3   r5   c                2   > [         TU ]  UUUUS9  X l        g )Nr0   )rb   rA   rz   )r?   r4   r{   r1   r2   r3   rc   s         r$   rA   UnixSite.__init__   s*     	-#	 	 	
 
r#   c                 P    U R                   (       a  SOSnU SU R                   S3$ )Nrf   rg   ://unix::)r+   rz   )r?   ri   s     r$   rE   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)rm   r3   )rb   rI   rn   ro   r*   r9   create_unix_serverrz   r+   r,   r-   rq   s      r$   rI   UnixSite.start   s~     gmo%%'$$!!!!44JJ!!MM	 5 
 
	 	
s"   BBA'B=B
>B
Brz   r-   rQ   )r   r   r   r    rR   r   rS   r	   r   rT   rA   rU   rV   rE   rI   r"   ru   rv   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      ry   r.   r1   r4   r   r{   r1   r5   Nc                   > [         R                  " 5       n[        U[         R                  5      (       d  [	        S5      e[
        TU ]  XS9  X l        g )Nz8Named Pipes only available in proactorloop under windowsr   )rn   ro   
isinstanceProactorEventLoopr:   rb   rA   rz   )r?   r4   r{   r1   rr   rc   s        r$   rA   NamedPipeSite.__init__   sT     %%''++
 
 M  	C
r#   c                     U R                   $ r&   ry   rD   s    r$   rE   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   )	rb   rI   rn   ro   r*   r9   start_serving_piperz   r-   )r?   rr   r9   r-   rc   s       r$   rI   NamedPipeSite.start   sq     gmo%%'$$!!!//JJ
 
 qz 	
s"   A<A8AA<(A:)A<:A<r   rQ   )r   r   r   r    rR   rV   rS   rA   rU   rE   rI   r"   ru   rv   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/   r0   r4   r   sockr1   r2   r3   r5   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 )	Nr0   rf   rg   AF_UNIXr   r   r7   rh   )rb   rA   r   r+   hasattrsocketfamilyr   getsocknamerV   r   rj   r   )r?   r4   r   r1   r2   r3   ri   rE   r_   r`   rc   s             r$   rA   SockSite.__init__   s     	-#	 	 	
 
 --669%%$++*GXXd&6&6&8%9;D))+BQ/JDsyyEFD
r#   c                     U R                   $ r&   )r   rD   s    r$   rE   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   rm   r3   )rb   rI   rn   ro   r*   r9   rp   r   r+   r,   r-   rq   s      r$   rI   SockSite.start   sy     gmo%%'$$!!!!//):):DMM 0 
 
	 	
s"   BBA&B<B	=B	B)r   r-   r   rQ   )r   r   r   r    rR   r   rS   r	   r   rT   rA   rU   rV   rE   rI   r"   ru   rv   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      shutdown_callback_handle_signals_kwargsr-   _sitesr>   Fr.   )handle_signalsr1   r   r1   kwargsr5   Nc                R    S U l         Xl        X0l        S U l        / U l        X l        g r&   r   )r?   r   r1   r   s       r$   rA   BaseRunner.__init__   s-     KO-)-&(!1r#   c                     U R                   $ r&   )r-   rD   s    r$   r9   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siter9   r   r   s         r$   	addressesBaseRunner.addresses  sY    KKD\\F! ..& '

4#3#3#56 !(   
r#   c                 ,    [        U R                  5      $ r&   )setr   rD   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&   )rn   ro   r   add_signal_handlersignalSIGINTr'   SIGTERMNotImplementedError_make_serverr-   r?   rr   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   rD   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                  (       a  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NF GN N N N N~! ["         a     g f = f7fr   )listr   rO   r-   rn   sleeppre_shutdownr   r   r>   _cleanup_serverr   get_running_loopremove_signal_handlerr   r   r   r   )r?   r   rr   s      r$   cleanupBaseRunner.cleanup-  s'    
 %D))+ & << --"""LL%%'--/!!%%,,...,,''(>(>???""$$$++-D**6==9**6>>:	  ! 
 #! /?$ ' s   ,FE42F!E7"1FE:(F<E<=,F)E>*FF 1F4>F 2F7F:F<F>F F
FFFFc                    #    g 7fr&   r   rD   s    r$   r   BaseRunner._make_serverL       r   c                    #    g 7fr&   r   rD   s    r$   r   BaseRunner._cleanup_serverP  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   r:   r   r?   r   s     r$   rH   BaseRunner._reg_siteT  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   r:   r   s     r$   rL   BaseRunner._check_siteY  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   r:   remover   s     r$   rN   BaseRunner._unreg_site]  s7    {{"tf,I$PQQ4 r#   )r   r   r-   r>   r   r   rQ   )r   r   r   r    rR   rt   rS   r   rA   rU   r	   r   r9   r   r   r
   r   r   r   r   r   r   r   r   rH   rL   rN   r"   r   r#   r$   r   r      s'   I  %"&	2 2  	2
 2 
2 (   	49 	 	  s8}    1 G G> 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   ic  zLow-level web server runner_web_serverFr   
web_serverr   r   r5   Nc                6   > [         TU ]  " SSU0UD6  Xl        g )Nr   r   )rb   rA   r   )r?   r   r   r   rc   s       r$   rA   ServerRunner.__init__h  s      	AA&A%r#   c                    #    g 7fr&   r   rD   s    r$   r   ServerRunner.shutdownn       r   c                 "   #    U R                   $ 7fr&   r   rD   s    r$   r   ServerRunner._make_serverq  s     s   c                    #    g 7fr&   r   rD   s    r$   r   ServerRunner._cleanup_servert  r   r   rQ   )r   r   r   r    __doc__rR   r   rt   r   rA   r   r   r   r"   ru   rv   s   @r$   r   r   c  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   ix  zWeb Application runner_appFr   appr   r   r5   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   )rb   rA   r   r   	TypeErrorformatr   )r?   r   r   r   rc   s       r$   rA   AppRunner.__init__}  sI     	AA&A#{++%%+VC[  	r#   c                     U R                   $ r&   r   rD   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   rD   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)Nrr   r   )	rn   ro   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   rD   s    r$   r   AppRunner._cleanup_server  s     ii!!!r   rQ   )r   r   r   r    r   rR   r   rt   r   rA   rU   r   r   r   r   r   r"   ru   rv   s   @r$   r   r   x  ss     I ;@		37	KN			 	 [  #BF B" "r#   r   rQ   )&rn   r   r   r;   abcr   r   typingr   r   r   r   r	   r
   yarlr   typedefsr   web_appr   r   r   rm   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p! p!f: *!"
 !"Q  Js   B3 3B>=B>