
    rp0jK              	          S SK r S SKrS SKrS SKJrJrJrJrJrJ	r	J
r
Jr  S SKJrJr  S SKJr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!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/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:  SSK;J<r<  SSK=J>r>  SSK?J@r@  SSKAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrI  SrJ\(       a$  \S   rK\\:\<4   rL\\0   rM\\\N\0\O4         rP\QS   rRO\rK\rL\rM\\   rP\QrR\" S5      rS\" S5      rT\" S\BS9rUS\/S \NS!   S"\\:/\\<   4   4S# jrV\" S$S%9" \V5      rW " S& S\
\X\'\   -  \4   5      rY " S' S(\Z5      r[\\Y/\S   4   \\Y/\S   4   -  r\ " S) S*\\\   5      r]g)+    N)AsyncIterator	AwaitableCallableIterableIteratorMappingMutableMappingSequence)AbstractAsyncContextManagerasynccontextmanager)	lru_cachepartialupdate_wrapper)TYPE_CHECKINGAnyOptionalTypeVarcastoverload)Signal)
FrozenList   )hdrs)AbstractAccessLoggerAbstractMatchInfoAbstractRouterAbstractStreamWriter)DEBUGAppKey)RawRequestMessage)
web_logger)StreamReader)Handler
Middleware)NotAppKeyWarning)AccessLogger)_fix_request_current_app)RequestHandler)Request)StreamResponse)AbstractRouteDef)Server)AbstractResourceAbstractRouteDomain
MaskDomainMatchedSubAppResourcePrefixedSubAppResourceSystemRouteUrlDispatcher)ApplicationCleanupErrorr5   _T_U	_Resource)boundhandlerapps)r5   .returnc           	      t    USSS2    H+  nUR                    H  u  p4[        [        X0S9U 5      n M     M-     U $ )zApply middlewares to handler.Nr;   )_middlewares_handlersr   r   )r;   r<   appm_s        I/home/wildlama/miniconda3/lib/python3.13/site-packages/aiohttp/web_app.py_build_middlewaresrF   J   s@     DbDz--DA$WQ%@'JG .  N    i   )maxsizec                     ^  \ rS rSr\" / SQ5      r\SSSSSSS.S\R                  S	\	S-  S
\
\   S\\\4   S-  S\S\R"                  S-  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\\\   -  S\4S jrSYS jr\S\\   S\SS4S j5       r\S\S\SS4S j5       rS\\\   -  S\SS4S  jrS\\\   -  SS4S! jr S\4S" jr!S\"\\\   -     4S# jr#S\4S$ jr$\SZS\\   S%SS\S-  4S& jj5       r%\S\\   S%\&S\\&-  4S' j5       r%\SZS\S%\S\4S( jj5       r%S[S\\\   -  S%\S\4S) jjr%\'S\R"                  4S* j5       r(S\R"                  S-  SS4S+ jr)\'S\4S, j5       r*SYS- jr+\'S\4S. j5       r,SYS/ jr-\'S\4S0 j5       r.S\S2 jr/S3\S1S S\04S4 jr1S5\2/ \34   S1S S\34S6 jr4S7\S1S S\54S8 jr6S9\
\7   S\8\9   4S: jr:\'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       rA\'S\	4S@ j5       rB\'S\C4SA j5       rDS\ESB.S\R"                  S-  SC\\F   SD\S\G4SE jjrHS\ESB.S\R"                  S-  SC\\F   SD\S\G4SF jjrISYSG jrJSYSH jrKSYSI jrL\M4SJ\NSK\OSL\PSM\QSNSOSP\\M   S\M4SQ jjrRS\"\S\\4      4SR jrTSS\MS\U4ST jrVS^SU jrWS\4SV jrXS\4SW jrYSXrZU =r[$ )_r5   W   )logger_debug_router_loop_handler_args_middlewaresrA   _has_legacy_middlewares_run_middlewares_state_frozen_pre_frozen_subapps_on_response_prepare_on_startup_on_shutdown_on_cleanup_client_max_size_cleanup_ctxN i   .)rK   routermiddlewareshandler_argsclient_max_sizeloopdebugrK   r^   r_   r`   ra   rb   rc   r=   c                (   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        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        [3        5       U l        U R,                  R7                  U R4                  R,                  5        U R0                  R7                  U R4                  R0                  5        XPl        g )	Nzrouter argument is deprecated   
stacklevelzloop argument is deprecated.zdebug argument is deprecatedTF)r4   warningswarnDeprecationWarning
isinstancer   rL   rM   rN   rO   rK   r   rP   rA   rR   rQ   rS   rT   rU   rV   r   rW   rX   rY   rZ   CleanupContextr\   appendr[   )selfrK   r^   r_   r`   ra   rb   rc   s           rE   __init__Application.__init__p   sY    >"_FMM/1CPQ &.119691MM-/Aa MM.0Bq &,
)*4[*A <@"-1-1$79 "$8>t!'-d|(.t'-d|*, 1 1 = => 1 1 = => /rG   clsc                 T    [         R                  " SU R                   S3[        SS9  g )NzInheritance class z$ from web.Application is discouraged   rf   )rh   ri   __name__rj   )rq   s    rE   __init_subclass__Application.__init_subclass__   s%     .RS	
rG   namevalc                 ~   > XR                   ;  a  [        R                  " SU S3[        SS9  [        TU ]  X5        g )NzSetting custom web.Application.z attribute is discouragedre   rf   )ATTRSrh   ri   rj   super__setattr__)rn   rw   rx   	__class__s      rE   r|   Application.__setattr__   s?    ::%5dV <% %& 	 G*rG   otherc                     XL $ Nr]   )rn   r   s     rE   __eq__Application.__eq__   s
    }rG   keyc                     g r   r]   rn   r   s     rE   __getitem__Application.__getitem__   s    25rG   c                     g r   r]   r   s     rE   r   r      s    ,/rG   c                      U R                   U   $ r   )rS   r   s     rE   r   r      s    {{3rG   c                 \    U R                   (       a  [        R                  " S[        SS9  g g )Nz=Changing state of started or joined application is deprecatedrs   rf   )rT   rh   ri   rj   rn   s    rE   _check_frozenApplication._check_frozen   s#    <<MMO" rG   valuec                     g r   r]   rn   r   r   s      rE   __setitem__Application.__setitem__   s    ?BrG   c                     g r   r]   r   s      rE   r   r      s    9<rG   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-configre   )categoryrg   )r   rk   r   rh   ri   r%   rS   r   s      rE   r   r      sB    #v&&MM* * !CrG   c                 >    U R                  5         U R                  U	 g r   )r   rS   r   s     rE   __delitem__Application.__delitem__   s    KKrG   c                 ,    [        U R                  5      $ r   )lenrS   r   s    rE   __len__Application.__len__   s    4;;rG   c                 ,    [        U R                  5      $ r   )iterrS   r   s    rE   __iter__Application.__iter__   s    DKK  rG   c                     [        U 5      $ r   idr   s    rE   __hash__Application.__hash__   s    $xrG   defaultc                     g r   r]   rn   r   r   s      rE   getApplication.get   s    FIrG   c                     g r   r]   r   s      rE   r   r      s    <?rG   c                     g r   r]   r   s      rE   r   r      s    8;rG   c                 8    U R                   R                  X5      $ r   )rS   r   r   s      rE   r   r      s    {{s,,rG   c                 ~    [         R                  " S[        SS9  [        [        R
                  U R                  5      $ )Nzloop property is deprecatedre   rf   )rh   ri   rj   r   asyncioAbstractEventLooprN   r   s    rE   rb   Application.loop   s.    
 	35GTUVG--tzz::rG   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_looprN   RuntimeErrorrL   	get_debugrV   	_set_loop)rn   rb   subapps      rE   r   Application._set_loop  s{    <))+D::!djj&<J  
 ;;#..*DK mmFT" $rG   c                     U R                   $ r   )rU   r   s    rE   
pre_frozenApplication.pre_frozen      rG   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        [        S 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 )NTc              3   4   #    U  H  u  pU(       + v   M     g 7fr   r]   ).0rD   	new_styles      rE   	<genexpr>)Application.pre_freeze.<locals>.<genexpr>(  s      +
.Hla	MM.Hs   F)rU   rP   freezerM   rW   r\   rX   rY   rZ   tuple_prepare_middlewarerA   anyrQ   r_   rR   rV   
pre_freezern   r   s     rE   r   Application.pre_freeze  s     "!!((*  "!  "!%*4+C+C+E%F"'* +
.2.H.H+
 (
$ )-(8(8emmF$($9$9$TV=T=TD! $rG   c                     U R                   $ r   )rT   r   s    rE   frozenApplication.frozen7      ||rG   c                     U R                   (       a  g U R                  5         SU l         U R                   H  nUR                  5         M     g NT)rT   r   rV   r   r   s     rE   r   Application.freeze;  s4    <<mmFMMO $rG   c                 N    [         R                  " S[        SS9  U R                  $ )Nzdebug property is deprecatedre   rf   )rh   ri   rj   rL   r   s    rE   rc   Application.debugD  s    46HUVW{{rG   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signamer=   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r   )send)rB   r   subsigs    rE   r;   EApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handlerM  s     kk&)))s     )rB   r5   r=   N)getattrrm   )r   r;   appsigr   rn   r   s      @rE   reg_handler4Application._reg_subapp_signals.<locals>.reg_handlerJ  s3    VW-F* * T7+FMM'"rG   
on_startupon_shutdown
on_cleanup)str)rn   r   r   s   `` rE   _reg_subapp_signalsApplication._reg_subapp_signalsI  s5    	# 	# 	# 	# 	L!M"L!rG   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)rk   r   	TypeErrorrstrip
ValueErrorr   r2   _add_subapp)rn   r   r   factorys       rE   
add_subappApplication.add_subappW  sV    &#&&011s#5660&A00rG   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   r^   register_resourcer   rV   rm   r   rN   r   )rn   r   r   resources       rE   r   Application._add_subapp`  s     ;;QRR==>??#%%%h/  (V$::!TZZ(rG   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*)rk   r   r   r0   r/   r   r1   r   )rn   r   r   ruler   s        rE   
add_domainApplication.add_domainp  sS    &#&&011F]%f-D&>D/>00rG   routesc                 8    U R                   R                  U5      $ r   )r^   
add_routes)rn   r   s     rE   r   Application.add_routesz  s    {{%%f--rG   c                     U R                   $ r   )rW   r   s    rE   on_response_prepareApplication.on_response_prepare}  s    (((rG   c                     U R                   $ r   )rX   r   s    rE   r   Application.on_startup  r   rG   c                     U R                   $ r   )rY   r   s    rE   r   Application.on_shutdown         rG   c                     U R                   $ r   )rZ   r   s    rE   r   Application.on_cleanup  r   rG   c                     U R                   $ r   )r\   r   s    rE   cleanup_ctxApplication.cleanup_ctx  r  rG   c                     U R                   $ r   )rM   r   s    rE   r^   Application.router  r   rG   c                     U R                   $ r   )rP   r   s    rE   r_   Application.middlewares  r  rG   rb   access_log_classr  kwargsc                z   [        U[        5      (       d  [        SU 3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$ )NzKaccess_log_class must be subclass of aiohttp.abc.AbstractAccessLogger, got rc   r  )request_factoryrb   )
issubclassr   r   r   r   rL   rO   itemsr,   _handle_make_requestrN   )rn   rb   r  r  kvs         rE   _make_handlerApplication._make_handler  s     *,@AA99I8JL 
 	t++w%5!"**002q	 3 LL
 ..
 	
 	
rG   c                ^    [         R                  " S[        SS9  U R                  " SXS.UD6$ )NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadre   rf   r  r]   )rh   ri   rj   r  )rn   rb   r  r  s       rE   make_handlerApplication.make_handler  s>     	T	
 !! 

<B
 	
rG   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    rE   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    rE   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   r\   rZ   r   s    rE   cleanupApplication.cleanup  sR     
 ??!!//&&t,,, ##//555 - 6s!   :A*A&#A* A(!A*(A*messagepayloadprotocolwritertaskzasyncio.Task[None]_clsc           
      v    [         (       a  U R                  c   eU" UUUUUU R                  U R                  S9$ )N)ra   )r   rN   r[   )rn   r)  r*  r+  r,  r-  r.  s          rE   r  Application._make_request  sE     =::)))JJ 11
 	
rG   c              #      #    [        U R                  5       HA  n[        USS 5      S:X  a  US4v   M  [        R                  " SU< S3[
        SS9  US4v   MC     [        U 5      S4v   g 7f)	N__middleware_version__r   Tzold-style middleware "z" deprecated, see #2252re   rf   F)reversedrP   r   rh   ri   rj   r'   )rn   rC   s     rE   r   Application._prepare_middleware  sq     $++,Aq2D9Q>g,QE1HI& 
 h - 't,d22s   A+A-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U< 35      eUR                  U 5        UR                  5         XAl
        UR                  R                  [        R                  5      (       a@  UR                  U5      I S h  vN nUR                   R#                  5       I S h  vN   Ub  U$ UR$                  nU R&                  (       a  U R(                  (       d5  [        UR*                  [,        5      (       d  [/        XdR0                  5      nOZUR0                  S S S2    HD  nUR2                   H1  u  pU	(       a  [5        [7        XS9U5      nM!  U" Xv5      I S h  vN nM3     MF     U" U5      I S h  vN $  GN N N N# N7f)Nz5match_info should be AbstractMatchInfo instance, not r?   r@   )r   r   r   rM   resolverk   r   r   add_appr   _match_infoheadersr   r   EXPECTexpect_handlerr,  drainr;   rR   rQ   router3   _cached_build_middlewarer<   rA   r   r   )
rn   r5  rb   rc   
match_inforespr;   rB   rC   r   s
             rE   r  Application._handle  s    %%' <<//88
j*;<<%%/N4  	4 (??t{{++#227;;D..&&((($$   //
  +9 9 37OOL%??4R40C(+(A(A$&4 ' ;W'G -.cO&;G )B 1 W%%%O 9 <(, '<%s\   AG#GBG#G !G#GB9G#;G<G#G!G#G#G#G#!G#c                     U $ )zgunicorn compatibilityr]   r   s    rE   __call__Application.__call__1  s    rG   c                 "    S[        U 5      S S3$ )Nz<Application 0xx>r   r   s    rE   __repr__Application.__repr__5  s     D!A..rG   c                     gr   r]   r   s    rE   __bool__Application.__bool__8  s    rG   )r\   r[   rL   rT   rO   rQ   rN   rP   rA   rZ   rW   rY   rX   rU   rM   rR   rS   rV   rK   r=   N).r   )r   r5   r=   N)r=   rl   )r=   r5   )\rt   
__module____qualname____firstlineno__	frozensetrz   r!   loggingLoggerr4   r   r$   r   r   r   intr   r   ro   typeru   r   r|   objectboolr   r   r   r7   r   r   r   r   r   r   r   r   r   r8   propertyrb   r   r   r   r   r   rc   r   r2   r   r   r9   r   r1   r   r+   listr.   r   _RespPrepareSignalr   
_AppSignalr   r   r   r	  r^   _Middlewaresr_   r&   r   r,   r  r  r   r$  r'  r)   r    r"   r(   r   r  r   r   r*   r  rD  rI  rL  __static_attributes____classcell__r}   s   @rE   r5   r5   W   s   	
E6 ",'+,.15&1560 60 $	60
 j)60 c3h'$.60 60 ''$.60 60 
60p
tM2 
t 
 	+C 	+c 	+d 	+F t  5vbz5b5 5/s/s/ / sVBZ/  C   BvbzB"BB B<s<3<4< <
!sVBZ/ 
! 
! 
!sVBZ/ D    !(3#45 !#  IvbzIDI29I I?vbz?B?27? ?;s;S;3; ;-sVBZ' -# - - ;g// ; ;#g77$> #4 #$  D    U8    t  "1 1m 1@V 1 (Y 7AN	 1 1m 1@U 1.*:!; .]@S . )%7 ) )  J     !Z ! !  J     ! !    !\ ! ! 267C	
 ''$.
 34	

 
 

B 267C	
 ''$.
 34	

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

 %
 #
 7m
 

*3XeJ4D.E%F 3*&W *& *&X/# /$  rG   c                   2    \ rS rSr\S\\   4S j5       rSrg)r6   i<  r=   c                 J    [        [        [           U R                  S   5      $ )Nr   )r   rZ  BaseExceptionargsr   s    rE   
exceptionsCleanupError.exceptions=  s    D'166rG   r]   N)	rt   rO  rP  rQ  rY  rZ  rc  re  r^  r]   rG   rE   r6   r6   <  s     7D/ 7 7rG   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	$ )
rl   iH  r=   Nc                 0   > [         TU ]  5         / U l        g r   )r{   ro   _exits)rn   r}   s    rE   ro   CleanupContext.__init__I  s    ?ArG   rB   c                    #    U  Hd  nU" U5      n[        U[        5      (       d  [        U5      " U5      nUR                  5       I S h  vN   U R                  R                  U5        Mf     g  N$7fr   )rk   r   r   
__aenter__ri  rm   )rn   rB   cbctxs       rE   rX   CleanupContext._on_startupM  s\     BS'Cc#>??)"-c2.."""KKs#  #s   AA0	A.
%A0c                 D  #    / n[        U R                  5       H  n UR                  S S S 5      I S h  vN   M!     U(       a   [        U5      S:X  a  US   e[        SU5      eg  N0! [        [        R
                  4 a  nUR                  U5         S nAM~  S nAff = f7f)Nr   r   z Multiple errors on cleanup stage)	r3  ri  	__aexit__	Exceptionr   CancelledErrorrm   r   r6   )rn   rB   errorsitexcs        rE   rZ   CleanupContext._on_cleanupW  s     4;;'B#ll4t444 (
 6{aQi"#EvNN	  5w556 #c""#s=   B A'A%A',B %A''BBB BB )ri  rN  )
rt   rO  rP  rQ  ro   r5   rX   rZ   r^  r_  r`  s   @rE   rl   rl   H  s8    B$[ $T $O[ OT O OrG   rl   )^r   rS  rh   collections.abcr   r   r   r   r   r   r	   r
   
contextlibr   r   	functoolsr   r   r   typingr   r   r   r   r   r   	aiosignalr   
frozenlistr    r   abcr   r   r   r   helpersr   r   http_parserr    logr!   streamsr"   typedefsr#   r$   web_exceptionsr%   web_logr&   web_middlewaresr'   web_protocolr(   web_requestr)   web_responser*   web_routedefr+   
web_serverr,   web_urldispatcherr-   r.   r/   r0   r1   r2   r3   r4   __all__r\  r[  r]  r   rX  _MiddlewaresHandlersrZ  _Subappsr7   r8   r9   rF   r?  r   r5   r   r6   _CleanupContextCallablerl   r]   rG   rE   <module>r     s     	 	 	 H 8 8 H H  !   # *  ! ) , ! 5 (   ( * 	 	 	 * &J 78j)L#HU:t3C-D$EFM"H JL#H-HT]T]K'78	!"45wi>223 %T23EF b.vc{!2C!78 bJ7< 7 k]7==>}mD1123 OZ 78 OrG   