
    bCiG              	          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JrJrJrJrJrJrJr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!J"r"J#r#J$r$  SS	K%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K0J1r1  SSK2J3r3  SSK4J5r5  SSK6J7r7  SSK8J9r9  SSK:J;r;  SSK<J=r=  SSK>J?r?  SSK@JArAJBrBJCrCJDrDJErEJFrFJGrG  SrH\(       a5  \\S/\
S   4      rI\\\9\;/\
S   4      rJ\\/   rK\\\\/\L4         rM\S   rNO\rI\rJ\rK\\   rM\rN\" S5      rO\" S5      rP " S S\\\Q\'\   4   \4   5      rR " S S\S5      rT\(       a  \\\R/\	S   4      rUO\rU " S S\U5      rVg)     N)partialupdate_wrapper)TYPE_CHECKINGAnyAsyncIterator	AwaitableCallableDictIterableIteratorListMappingMutableMappingOptionalSequenceTupleTypeTypeVarUnioncastoverload)Signal)
FrozenList   )hdrs)AbstractAccessLoggerAbstractMatchInfoAbstractRouterAbstractStreamWriter)DEBUGAppKey)RawRequestMessage)
web_logger)StreamReader)
Middleware)NotAppKeyWarning)AccessLogger)_fix_request_current_app)RequestHandler)Request)StreamResponse)AbstractRouteDef)Server)AbstractResourceAbstractRouteDomain
MaskDomainMatchedSubAppResourcePrefixedSubAppResourceUrlDispatcher)ApplicationCleanupErrorr5   _T_Uc                     ^  \ rS rSr\" / SQ5      r\SSSSSSS.S\R                  S	\	\
   S
\\   S\	\\\4      S\S\	\R$                     S\SS4S jjrS\S    SS4S jr\(       a  S\S\SS4U 4S jjrS\S\4S jr\S\\   S\4S j5       r\S\S\4S j5       rS\\\\   4   S\4S jrSXS jr \S\\   S\SS4S j5       r!\S\S\SS4S j5       r!S\\\\   4   S\SS4S  jr!S\\\\   4   SS4S! jr"S\4S" jr#S\$\\\\   4      4S# jr%\SYS\\   S$SS\	\   4S% jj5       r&\S\\   S$\'S\\\'4   4S& j5       r&\SYS\S$\S\4S' jj5       r&SZS\\\\   4   S$\S\4S( jjr&\(S\R$                  4S) j5       r)S\	\R$                     SS4S* jr*\(S\4S+ j5       r+SXS, jr,\(S\4S- j5       r-SXS. jr.\(S\4S/ j5       r/S[S1 jr0S2\S0S S\14S3 jr2S4\3/ \14   S0S S\14S5 jr4S6\S0S S\14S7 jr5S8\\6   S\7\8   4S9 jr9\(S\:4S: j5       r;\(S\<4S; j5       r=\(S\<4S< j5       r>\(S\<4S= j5       r?\(S\S> j5       r@\(S\
4S? j5       rA\(S\B4S@ j5       rCS\DSA.S\	\R$                     SB\\E   SC\S\F4SD jjrGS\DSA.S\	\R$                     SB\\E   SC\S\F4SE jjrHSXSF jrISXSG jrJSXSH jrK\L4SI\MSJ\NSK\OSL\PSMSNSO\\L   S\L4SP jjrQS\$\R\\4      4SQ jrSSR\LS\T4SS jrUS]ST jrVS\4SU jrWS\4SV jrXSWrYU =rZ$ )^r5   Q   )logger_debug_router_loop_handler_args_middlewares_middlewares_handlers_run_middlewares_state_frozen_pre_frozen_subapps_on_response_prepare_on_startup_on_shutdown_on_cleanup_client_max_size_cleanup_ctxN i   .)r;   routermiddlewareshandler_argsclient_max_sizeloopdebugr;   rN   rO   rP   rQ   rR   rS   returnc                   Uc  [        5       nO[        R                  " S[        SS9  [	        U[
        5      (       d   U5       eUb  [        R                  " S[        SS9  USLa  [        R                  " S[        SS9  Xpl        X l        X`l        X@l	        Xl
        [        U5      U l        S U l        S U l        0 U l        SU l        SU l        / U l        ['        U 5      U l        ['        U 5      U l        ['        U 5      U l        ['        U 5      U l        [1        5       U l        U R*                  R5                  U R2                  R*                  5        U R.                  R5                  U R2                  R.                  5        XPl        g )Nzrouter argument is deprecated   
stacklevelzloop argument is deprecated.zdebug argument is deprecatedF)r4   warningswarnDeprecationWarning
isinstancer   r<   r=   r>   r?   r;   r   r@   rA   rB   rC   rD   rE   rF   r   rG   rH   rI   rJ   CleanupContextrL   appendrK   )selfr;   rN   rO   rP   rQ   rR   rS   s           I/home/james-whalen/.local/lib/python3.13/site-packages/aiohttp/web_app.py__init__Application.__init__i   sQ    >"_FMM/1CPQ &.119691MM-/Aa MM.0Bq &,
)*4[*A <@"04=? "$8>t!'-d|(.t'-d|*, 1 1 = => 1 1 = => /    clsc                 j    [         R                  " SR                  U R                  5      [        SS9  g )Nz8Inheritance class {} from web.Application is discouraged   rW   )rY   rZ   format__name__r[   )rd   s    r`   __init_subclass__Application.__init_subclass__   s'    #VCLL1		
rc   namevalc                    > XR                   ;  a)  [        R                  " SR                  U5      [        SS9  [
        TU ]  X5        g )Nz:Setting custom web.Application.{} attribute is discouragedrV   rW   )ATTRSrY   rZ   rg   r[   super__setattr__)r_   rk   rl   	__class__s      r`   rp   Application.__setattr__   s<    ::%%%+VD\& 	 G*rc   otherc                     XL $ NrM   )r_   rs   s     r`   __eq__Application.__eq__   s
    }rc   keyc                     g ru   rM   r_   rx   s     r`   __getitem__Application.__getitem__       rc   c                     g ru   rM   rz   s     r`   r{   r|      r}   rc   c                      U R                   U   $ ru   )rC   rz   s     r`   r{   r|      s    {{3rc   c                 \    U R                   (       a  [        R                  " S[        SS9  g g )Nz=Changing state of started or joined application is deprecatedrf   rW   )rD   rY   rZ   r[   r_   s    r`   _check_frozenApplication._check_frozen   s#    <<MMR" rc   valuec                     g ru   rM   r_   rx   r   s      r`   __setitem__Application.__setitem__   r}   rc   c                     g ru   rM   r   s      r`   r   r      r}   rc   c                     U R                  5         [        U[        5      (       d  [        R                  " S[
        SS9  X R                  U'   g )NzIt is recommended to use web.AppKey instances for keys.
https://docs.aiohttp.org/en/stable/web_advanced.html#application-s-configrV   )categoryrX   )r   r\   r!   rY   rZ   r&   rC   r   s      r`   r   r      sB    #v&&MM* * !Crc   c                 >    U R                  5         U R                  U	 g ru   )r   rC   rz   s     r`   __delitem__Application.__delitem__   s    KKrc   c                 ,    [        U R                  5      $ ru   )lenrC   r   s    r`   __len__Application.__len__   s    4;;rc   c                 ,    [        U R                  5      $ ru   )iterrC   r   s    r`   __iter__Application.__iter__   s    DKK  rc   defaultc                     g ru   rM   r_   rx   r   s      r`   getApplication.get   r}   rc   c                     g ru   rM   r   s      r`   r   r      r}   rc   c                     g ru   rM   r   s      r`   r   r      r}   rc   c                 8    U R                   R                  X5      $ ru   )rC   r   r   s      r`   r   r      s    {{s,,rc   c                 ~    [         R                  " S[        SS9  [        [        R
                  U R                  5      $ )Nzloop property is deprecatedrV   rW   )rY   rZ   r[   r   asyncioAbstractEventLoopr>   r   s    r`   rR   Application.loop   s.    
 	35GTUVG--tzz::rc   c                    Uc  [         R                  " 5       nU R                  b  U R                  ULa  [        S5      eXl        U R                  SL a  UR                  5       U l        U R                   H  nUR                  U5        M     g )Nz8web.Application instance initialized with different loop.)r   get_event_loopr>   RuntimeErrorr<   	get_debugrF   	_set_loop)r_   rR   subapps      r`   r   Application._set_loop  s{    <))+D::!djj&<J  
 ;;#..*DK mmFT" $rc   c                     U R                   $ ru   )rE   r   s    r`   
pre_frozenApplication.pre_frozen      rc   c                    U R                   (       a  g SU l         U R                  R                  5         U R                  R                  5         U R                  R                  5         U R
                  R                  5         U R                  R                  5         U R                  R                  5         U R                  R                  5         [        U R                  5       5      U l        U R                  (       a  SOSU l        U R                   H7  nUR                  5         U R                  =(       d    UR                  U l        M9     g )NTF)rE   r@   freezer=   rG   rL   rH   rI   rJ   tuple_prepare_middlewarerA   rO   rB   rF   
pre_freezer_   r   s     r`   r   Application.pre_freeze  s      "!!((*  "!  "!%*4+C+C+E%F" )-(8(8emmF$($9$9$TV=T=TD! $rc   c                     U R                   $ ru   )rD   r   s    r`   frozenApplication.frozen1      ||rc   c                     U R                   (       a  g U R                  5         SU l         U R                   H  nUR                  5         M     g NT)rD   r   rF   r   r   s     r`   r   Application.freeze5  s4    <<mmFMMO $rc   c                 N    [         R                  " S[        SS9  U R                  $ )Nzdebug property is deprecatedrV   rW   )rY   rZ   r[   r<   r   s    r`   rS   Application.debug>  s    46HUVW{{rc   r   c                 Z   ^ ^ S[         SS 4U U4S jjnU" S5        U" S5        U" S5        g )NsignamerT   c                 l   >^ [        TU 5      mSUU4S jjn[        TU 5      nUR                  U5        g )Nc                 D   >#    TR                  T5      I S h  vN   g  N7fru   )send)appr   subsigs    r`   handlerEApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handlerG  s     kk&)))s     )r   r5   rT   N)getattrr^   )r   r   appsigr   r_   r   s      @r`   reg_handler4Application._reg_subapp_signals.<locals>.reg_handlerD  s3    VW-F* * T7+FMM'"rc   
on_startupon_shutdown
on_cleanup)str)r_   r   r   s   `` r`   _reg_subapp_signalsApplication._reg_subapp_signalsC  s5    	# 	# 	# 	# 	L!M"L!rc   prefixc                     [        U[        5      (       d  [        S5      eUR                  S5      nU(       d  [	        S5      e[        [        X5      nU R                  X25      $ )NzPrefix must be str/zPrefix cannot be empty)r\   r   	TypeErrorrstrip
ValueErrorr   r3   _add_subapp)r_   r   r   factorys       r`   
add_subappApplication.add_subappQ  sV    &#&&011s#5660&A00rc   resource_factoryc                    U R                   (       a  [        S5      eUR                   (       a  [        S5      eU" 5       nU R                  R                  U5        U R	                  U5        U R
                  R                  U5        UR                  5         U R                  b  UR                  U R                  5        U$ )Nz0Cannot add sub application to frozen applicationzCannot add frozen application)
r   r   rN   register_resourcer   rF   r^   r   r>   r   )r_   r   r   resources       r`   r   Application._add_subappZ  s     ;;QRR==>??#%%%h/  (V$::!TZZ(rc   domainc                     [        U[        5      (       d  [        S5      eSU;   a  [        U5      nO[	        U5      n[        [        X25      nU R                  XB5      $ )NzDomain must be str*)r\   r   r   r1   r0   r   r2   r   )r_   r   r   ruler   s        r`   
add_domainApplication.add_domainj  sS    &#&&011F]%f-D&>D/>00rc   routesc                 8    U R                   R                  U5      $ ru   )rN   
add_routes)r_   r   s     r`   r   Application.add_routest  s    {{%%f--rc   c                     U R                   $ ru   )rG   r   s    r`   on_response_prepareApplication.on_response_preparew  s    (((rc   c                     U R                   $ ru   )rH   r   s    r`   r   Application.on_startup{  r   rc   c                     U R                   $ ru   )rI   r   s    r`   r   Application.on_shutdown         rc   c                     U R                   $ ru   )rJ   r   s    r`   r   Application.on_cleanup  r   rc   c                     U R                   $ ru   )rL   r   s    r`   cleanup_ctxApplication.cleanup_ctx  r   rc   c                     U R                   $ ru   )r=   r   s    r`   rN   Application.router  r   rc   c                     U R                   $ ru   )r@   r   s    r`   rO   Application.middlewares  r   rc   rR   access_log_classr   kwargsc                   [        U[        5      (       d  [        SR                  U5      5      eU R	                  U5        U R                  5         U R                  US'   X#S'   U R                  (       a'  U R                  R                  5        H	  u  pEXSU'   M     [        U R                  4U R                  U R                  S.UD6$ )NzMaccess_log_class must be subclass of aiohttp.abc.AbstractAccessLogger, got {}rS   r   )request_factoryrR   )
issubclassr   r   rg   r   r   r<   r?   itemsr-   _handle_make_requestr>   )r_   rR   r   r   kvs         r`   _make_handlerApplication._make_handler  s     *,@AA;;A6BR;S 
 	t++w%5!"**002q	 3 LL
 ..
 	
 	
rc   c                ^    [         R                  " S[        SS9  U R                  " SXS.UD6$ )NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrV   rW   r   rM   )rY   rZ   r[   r  )r_   rR   r   r   s       r`   make_handlerApplication.make_handler  s>     	W	
 !! 

<B
 	
rc   c                 V   #    U R                   R                  U 5      I Sh  vN   g N7f)z]Causes on_startup signal

Should be called in the event loop along with the request handler.
N)r   r   r   s    r`   startupApplication.startup  s     
 oo""4(((   )')c                 V   #    U R                   R                  U 5      I Sh  vN   g N7f)z=Causes on_shutdown signal

Should be called before cleanup()
N)r   r   r   s    r`   shutdownApplication.shutdown  s!     
 ##D)))r  c                    #    U R                   R                  (       a$  U R                   R                  U 5      I Sh  vN   gU R                  R	                  U 5      I Sh  vN   g N) N7f)z<Causes on_cleanup signal

Should be called after shutdown()
N)r   r   r   rL   rJ   r   s    r`   cleanupApplication.cleanup  sR     
 ??!!//&&t,,, ##//555 - 6s!   :A*A&#A* A(!A*(A*messagepayloadprotocolwritertaskzasyncio.Task[None]_clsc           
      B    U" UUUUUU R                   U R                  S9$ )N)rQ   )r>   rK   )r_   r  r  r  r  r  r  s          r`   r  Application._make_request  s0     JJ 11
 	
rc   c              #      #    [        U R                  5       HK  n[        USS 5      S:X  a  US4v   M  [        R                  " SR                  U5      [        SS9  US4v   MM     [        U 5      S4v   g 7f)N__middleware_version__r   Tz1old-style middleware "{!r}" deprecated, see #2252rV   rW   F)reversedr@   r   rY   rZ   rg   r[   r(   )r_   ms     r`   r   Application._prepare_middleware  ss     $++,Aq2D9Q>gJQQRST& 
 h - 't,d22s   A5A7requestc           	      \  #    [         R                  " 5       nUR                  5       nU R                  R	                  U5      I S h  vN nU(       a/  [        U[        5      (       d  [        SR                  U5      5      eUR                  U 5        UR                  5         S nXAl        UR                  R                  [        R                  5      nU(       a;  UR!                  U5      I S h  vN nUR"                  R%                  5       I S h  vN   Uc  UR&                  nU R(                  (       aZ  UR*                  S S S2    HD  nUR,                   H1  u  pU
(       a  [/        [1        XS9U5      nM!  U	" X5      I S h  vN nM3     MF     U" U5      I S h  vN nU$  GN[ N N N% N7f)Nz9match_info should be AbstractMatchInfo instance, not {!r})r   )r   r   r   r=   resolver\   r   r   rg   add_appr   _match_infoheadersr   r   EXPECTexpect_handlerr  drainr   rB   appsrA   r   r   )r_   r"  rR   rS   
match_inforespexpectr   r   r   	new_styles              r`   r  Application._handle  s`    %%' <<//88
j*;<<))/
);  	4 ($$T[[1#227;;D..&&(((< ((G$$%??4R40C(+(A(A$&4 ' ;W'G -.cO&;G )B 1 !))DC 9 <( '<)s\   AF,F!B'F,.F$/!F,F&A1F,F(F,F*F,$F,&F,(F,*F,c                     U $ )zgunicorn compatibilityrM   r   s    r`   __call__Application.__call__#  s    rc   c                 "    S[        U 5      S S3$ )Nz<Application 0xx>)idr   s    r`   __repr__Application.__repr__'  s     D!A..rc   c                     gr   rM   r   s    r`   __bool__Application.__bool__*  s    rc   )rL   rK   r<   rD   r?   r>   r@   rA   rJ   rG   rI   rH   rE   r=   rB   rC   rF   r;   rT   N).ru   )r   r5   rT   N)rT   r]   )rT   r5   )[rh   
__module____qualname____firstlineno__	frozensetrn   r#   loggingLoggerr   r4   r   r%   r   r   r   intr   r   ra   r   ri   r    rp   objectboolrv   r   r!   r7   r{   r   r   r   r   r   r   r   r   r8   propertyrR   r   r   r   r   r   rS   r   r.   r   r	   r   r   r,   r   r/   r   _RespPrepareSignalr   
_AppSignalr   r   r   r   rN   _MiddlewaresrO   r'   r   r-   r  r	  r  r  r  r*   r"   r$   r)   r   r  r   r   r+   r  r3  r9  r<  __static_attributes____classcell__rq   s   @r`   r5   r5   Q   s   	
E4 ",*.,.48&4850 50 '	50
 j)50 wsCx0150 50 w00150 50 
50n
tM2 
t 
 	+C 	+c 	+d 	+F t  vbz b   s s   uS&*_5  #   vbz "    s 3 4  
!uS&*_5 
!c 
!d 
!uS&*_5 $    !(5fSk)9#:; ! vbz D 8B<   vbz B 5R=   s S 3  -uS&*_- - -s - ;g// ; ;#hw'@'@A #d #$  D    U2    t  "1 1m 1@P 1 (-=)= >HU	 1 1m 1@P 1.*:!; .]@S . )%7 ) )  J     !Z ! !  J     ! !    !\ ! ! 597C	
 w001
 34	

 
 

B 597C	
 w001
 34	

 
 

$)*	6$ &
"
 
 !	

 %
 #
 7m
 

&3XeJ4D.E%F 3$W $ $L/# /$  rc   c                   2    \ rS rSr\S\\   4S j5       rSrg)r6   i.  rT   c                 J    [        [        [           U R                  S   5      $ )Nr   )r   r   BaseExceptionargsr   s    r`   
exceptionsCleanupError.exceptions/  s    D'166rc   rM   N)	rh   r?  r@  rA  rH  r   rQ  rS  rL  rM   rc   r`   r6   r6   .  s     7D/ 7 7rc   r6   c                   P   ^  \ rS rSrS	U 4S jjrS\SS4S jrS\SS4S jrSrU =r	$ )
r]   i:  rT   Nc                 0   > [         TU ]  5         / U l        g ru   )ro   ra   _exits)r_   rq   s    r`   ra   CleanupContext.__init__;  s    13rc   r   c                    #    U  HL  nU" U5      R                  5       nUR                  5       I S h  vN   U R                  R                  U5        MN     g  N$7fru   )	__aiter__	__anext__rW  r^   )r_   r   cbits       r`   rH   CleanupContext._on_startup?  sE     BC""$B,,.  KKr"  s   /AA%Ac                 r  #    / n[        U R                  5       H:  n UR                  5       I S h  vN   UR                  [	        U< S35      5        M<     U(       a   [        U5      S:X  a  US   e[        SU5      eg  NN! [
         a     Mu  [         a  nUR                  U5         S nAM  S nAff = f7f)Nz has more than one 'yield'r   r   z Multiple errors on cleanup stage)	r  rW  r[  r^   r   StopAsyncIteration	Exceptionr   r6   )r_   r   errorsr]  excs        r`   rJ   CleanupContext._on_cleanupE  s     4;;'BQlln$$ lbV3M+NOP ( 6{aQi"#EvNN	  %%  #c""#sJ   B7BB BA
B7 B
B4B7	B4B/)B7/B44B7)rW  r>  )
rh   r?  r@  rA  ra   r5   rH   rJ   rL  rM  rN  s   @r`   r]   r]   :  s7    4#[ #T #O[ OT O Orc   r]   )Wr   rC  rY   	functoolsr   r   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   	aiosignalr   
frozenlistr    r   abcr   r   r   r   helpersr    r!   http_parserr"   logr#   streamsr$   typedefsr%   web_exceptionsr&   web_logr'   web_middlewaresr(   web_protocolr)   web_requestr*   web_responser+   web_routedefr,   
web_serverr-   web_urldispatcherr.   r/   r0   r1   r2   r3   r4   __all__rJ  rI  rK  rG  _MiddlewaresHandlers_Subappsr7   r8   r   r5   r   r6   _CleanupContextBaser]   rM   rc   r`   <module>r}     s      -     ,  !   # *  !   , ! 5 (   ( *    * -)D/!ABCJ'>)BIdO)S TUj)L#HU:t3C-D$EFM"H JL#H-HT]T]Z.sF3K'7!8#!=> Zz7< 7 $X{m]4=P.P%QR$O( Orc   