
    bfG              	       :   d dl Z d dlZd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ ddlmZ ddl m!Z!m"Z"m#Z#m$Z$ dd	l%m&Z&m'Z' dd
l(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZG dZHerVeedge
d         f                  ZIeee9e;ge
d         f                  ZJee/         ZKeeee/eLf                           ZMed         ZNneZIeZJeZKee         ZMeZN ed          ZO ed          ZP G d deeeQe'e         f         ef                   ZR G d deS          ZTereeeRge	d         f                  ZUneZU G d deU          ZVdS )     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                   ^    e Zd Z eg d          Zeddddddddej        dee	         d	e
e         d
eeeef                  dedeej                 deddfdZded          ddfdZerdededdf fdZdedefdZedee         defd            Zededefd            Zdeeee         f         defdZdWdZedee         deddfd            Z edededdfd            Z deeee         f         deddfdZ deeee         f         ddfd Z!defd!Z"de#eeee         f                  fd"Z$edXdee         d#ddee         fd$            Z%edee         d#e&deee&f         fd%            Z%edXded#edefd&            Z%dYdeeee         f         d#edefd'Z%e'dej        fd(            Z(deej                 ddfd)Z)e'defd*            Z*dWd+Z+e'defd,            Z,dWd-Z-e'defd.            Z.dZd0Z/d1ed/d de0fd2Z1d3e2g e0f         d/d de0fd4Z3d5ed/d de0fd6Z4d7e
e5         de6e7         fd8Z8e'de9fd9            Z:e'de;fd:            Z<e'de;fd;            Z=e'de;fd<            Z>e'd[d>            Z?e'de	fd?            Z@e'deAfd@            ZBdeCdAdeej                 dBeeD         dCedeEfdDZFdeCdAdeej                 dBeeD         dCedeEfdEZGdWdFZHdWdGZIdWdHZJeKfdIeLdJeMdKeNdLeOdMdNdOeeK         deKfdPZPde#eQeef                  fdQZRdReKdeSfdSZTd\dTZUdefdUZVdefdVZW xZXS )]r5   )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:   rM   rN   rO   rP   rQ   rR   returnc                @   |t                      }nt          j        dt          d           t	          |t
                    s
J |            |t          j        dt          d           |durt          j        dt          d           || _        || _        || _        || _	        || _
        t          |          | _        d | _        d | _        i | _        d| _        d| _        g | _        t'          |           | _        t'          |           | _        t'          |           | _        t'          |           | _        t1                      | _        | j                            | j        j                   | j                            | j        j                   || _        d S )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?   r@   rA   rB   rC   rD   rE   r   rF   rG   rH   rI   CleanupContextrK   appendrJ   )selfr:   rM   rN   rO   rP   rQ   rR   s           I/var/www/html/Alfredo/env/lib/python3.11/site-packages/aiohttp/web_app.py__init__zApplication.__init__i   s    >"__FFM/1CPQ    &.11996999M-/Aa    M.0Bq    &,
)*4[*A*A <@"04=? "$8>t!'-d||(.t'-d||*,, 1 =>>> 1 =>>> /    clsc                 n    t          j        d                    | j                  t          d           d S )Nz8Inheritance class {} from web.Application is discouraged   rV   )rX   rY   format__name__rZ   )rb   s    r_   __init_subclass__zApplication.__init_subclass__   s?    #VCL11		
 	
 	
 	
 	
 	
ra   namevalc                     || j         vr/t          j        d                    |          t          d           t                                          ||           d S )Nz:Setting custom web.Application.{} attribute is discouragedrU   rV   )ATTRSrX   rY   re   rZ   super__setattr__)r^   rh   ri   	__class__s      r_   rm   zApplication.__setattr__   sa    4:%%%%+VD\\& 	    GGc*****ra   otherc                 
    | |u S NrL   )r^   ro   s     r_   __eq__zApplication.__eq__   s    u}ra   keyc                     d S rq   rL   r^   rs   s     r_   __getitem__zApplication.__getitem__       ra   c                     d S rq   rL   ru   s     r_   rv   zApplication.__getitem__   rw   ra   c                     | j         |         S rq   )rB   ru   s     r_   rv   zApplication.__getitem__   s    {3ra   c                 P    | j         rt          j        dt          d           d S d S )Nz=Changing state of started or joined application is deprecatedrd   rV   )rC   rX   rY   rZ   r^   s    r_   _check_frozenzApplication._check_frozen   sB    < 	MR"     	 	ra   valuec                     d S rq   rL   r^   rs   r}   s      r_   __setitem__zApplication.__setitem__   rw   ra   c                     d S rq   rL   r   s      r_   r   zApplication.__setitem__   rw   ra   c                     |                                   t          |t                    st          j        dt
          d           || j        |<   d S )NzIt is recommended to use web.AppKey instances for keys.
https://docs.aiohttp.org/en/stable/web_advanced.html#application-s-configrU   )categoryrW   )r|   r[   r!   rX   rY   r&   rB   r   s      r_   r   zApplication.__setitem__   s`    #v&& 	M* *    !Cra   c                 >    |                                   | j        |= d S rq   )r|   rB   ru   s     r_   __delitem__zApplication.__delitem__   s$    Kra   c                 *    t          | j                  S rq   )lenrB   r{   s    r_   __len__zApplication.__len__   s    4;ra   c                 *    t          | j                  S rq   )iterrB   r{   s    r_   __iter__zApplication.__iter__   s    DK   ra   defaultc                     d S rq   rL   r^   rs   r   s      r_   getzApplication.get   rw   ra   c                     d S rq   rL   r   s      r_   r   zApplication.get   rw   ra   c                     d S rq   rL   r   s      r_   r   zApplication.get   rw   ra   c                 8    | j                             ||          S rq   )rB   r   r   s      r_   r   zApplication.get   s    {sG,,,ra   c                 x    t          j        dt          d           t          t          j        | j                  S )Nzloop property is deprecatedrU   rV   )rX   rY   rZ   r   asyncioAbstractEventLoopr=   r{   s    r_   rQ   zApplication.loop   s3    
 	35GTUVVVVG-tz:::ra   c                     |t          j                    }| j        | j        |urt          d          || _        | j        du r|                                | _        | j        D ]}|                    |           d S )Nz8web.Application instance initialized with different loop.)r   get_event_loopr=   RuntimeErrorr;   	get_debugrE   	_set_loop)r^   rQ   subapps      r_   r   zApplication._set_loop  s    <)++D:!dj&<&<J   
 ;#..**DK m 	# 	#FT""""	# 	#ra   c                     | j         S rq   )rD   r{   s    r_   
pre_frozenzApplication.pre_frozen      ra   c                 R   | j         rd S d| _         | j                                         | j                                         | j                                         | j                                         | j                                         | j                                         | j                                         t          | 
                                          | _        | j        rdnd| _        | j        D ])}|                                 | j        p|j        | _        *d S )NTF)rD   r?   freezer<   rF   rK   rG   rH   rI   tuple_prepare_middlewarer@   rN   rA   rE   
pre_freezer^   r   s     r_   r   zApplication.pre_freeze  s%    	F  """!((***  """!!!  """!!!%*4+C+C+E+E%F%F" )-(8 Cem 	U 	UF$($9$TV=TD!!	U 	Ura   c                     | j         S rq   )rC   r{   s    r_   frozenzApplication.frozen1  
    |ra   c                     | j         rd S |                                  d| _         | j        D ]}|                                 d S NT)rC   r   rE   r   r   s     r_   r   zApplication.freeze5  sR    < 	Fm 	 	FMMOOOO	 	ra   c                 H    t          j        dt          d           | j        S )Nzdebug property is deprecatedrU   rV   )rX   rY   rZ   r;   r{   s    r_   rR   zApplication.debug>  s$    46HUVWWWW{ra   r   c                 l     dt           dd f fd} |d            |d            |d           d S )NsignamerS   c                     t          |           dfd}t          |           }|                    |           d S )Nappr5   rS   c                 B   K                                   d {V  d S rq   )send)r   r   subsigs    r_   handlerzEApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handlerG  s1      kk&)))))))))))ra   )r   r5   rS   N)getattrr]   )r   r   appsigr   r^   r   s      @r_   reg_handlerz4Application._reg_subapp_signals.<locals>.reg_handlerD  s_    VW--F* * * * * * * T7++FMM'"""""ra   
on_startupon_shutdown
on_cleanup)str)r^   r   r   s   `` r_   _reg_subapp_signalszApplication._reg_subapp_signalsC  sm    	# 	# 	# 	# 	# 	# 	# 	# 	# 	L!!!M"""L!!!!!ra   prefixc                     t          |t                    st          d          |                    d          }|st	          d          t          t          ||          }|                     ||          S )NzPrefix must be str/zPrefix cannot be empty)r[   r   	TypeErrorrstrip
ValueErrorr   r3   _add_subapp)r^   r   r   factorys       r_   
add_subappzApplication.add_subappQ  ss    &#&& 	20111s## 	756660&&AA000ra   resource_factoryc                 n   | j         rt          d          |j         rt          d           |            }| j                            |           |                     |           | j                            |           |                                 | j        |	                    | j                   |S )Nz0Cannot add sub application to frozen applicationzCannot add frozen application)
r   r   rM   register_resourcer   rE   r]   r   r=   r   )r^   r   r   resources       r_   r   zApplication._add_subappZ  s     ; 	SQRRR= 	@>???##%%%%h///  (((V$$$:!TZ(((ra   domainc                     t          |t                    st          d          d|v rt          |          }nt	          |          }t          t          ||          }|                     ||          S )NzDomain must be str*)r[   r   r   r1   r0   r   r2   r   )r^   r   r   ruler   s        r_   
add_domainzApplication.add_domainj  sn    &#&& 	"0111F]]%f--DD&>>D/v>>000ra   routesc                 6    | j                             |          S rq   )rM   
add_routes)r^   r   s     r_   r   zApplication.add_routest  s    {%%f---ra   c                     | j         S rq   )rF   r{   s    r_   on_response_preparezApplication.on_response_preparew  s    ((ra   c                     | j         S rq   )rG   r{   s    r_   r   zApplication.on_startup{  r   ra   c                     | j         S rq   )rH   r{   s    r_   r   zApplication.on_shutdown        ra   c                     | j         S rq   )rI   r{   s    r_   r   zApplication.on_cleanup  r   ra   r\   c                     | j         S rq   )rK   r{   s    r_   cleanup_ctxzApplication.cleanup_ctx  r   ra   c                     | j         S rq   )r<   r{   s    r_   rM   zApplication.router  r   ra   c                     | j         S rq   )r?   r{   s    r_   rN   zApplication.middlewares  r   ra   rQ   access_log_classr   kwargsc                t   t          |t                    s"t          d                    |                    |                     |           |                                  | j        |d<   ||d<   | j        r$| j                                        D ]
\  }}|||<   t          | j
        f| j        | j        d|S )NzMaccess_log_class must be subclass of aiohttp.abc.AbstractAccessLogger, got {}rR   r   )request_factoryrQ   )
issubclassr   r   re   r   r   r;   r>   itemsr-   _handle_make_requestr=   )r^   rQ   r   r   kvs         r_   _make_handlerzApplication._make_handler  s     *,@AA 	;;A6BR;S;S  
 	t+w%5!" 	*0022  1q		L
 .
 
 	
 
 	
ra   c                Z    t          j        dt          d            | j        d||d|S )NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrU   rV   r   rL   )rX   rY   rZ   r   )r^   rQ   r   r   s       r_   make_handlerzApplication.make_handler  sW     	W	
 	
 	
 	
 "t! 
(8
 
<B
 
 	
ra   c                 J   K   | j                             |            d{V  dS )zmCauses on_startup signal

        Should be called in the event loop along with the request handler.
        N)r   r   r{   s    r_   startupzApplication.startup  s6      
 o""4(((((((((((ra   c                 J   K   | j                             |            d{V  dS )zMCauses on_shutdown signal

        Should be called before cleanup()
        N)r   r   r{   s    r_   shutdownzApplication.shutdown  s7      
 ##D)))))))))))ra   c                    K   | j         j        r"| j                             |            d{V  dS | j                            |            d{V  dS )zLCauses on_cleanup signal

        Should be called after shutdown()
        N)r   r   r   rK   rI   r{   s    r_   cleanupzApplication.cleanup  st      
 ?! 	6/&&t,,,,,,,,,,, #//55555555555ra   messagepayloadprotocolwritertaskzasyncio.Task[None]_clsc           	      :     ||||||| j         | j                  S )N)rP   )r=   rJ   )r^   r   r   r   r   r   r   s          r_   r   zApplication._make_request  s7     tJ 1
 
 
 	
ra   c              #      K   t          | j                  D ]S}t          |dd           dk    r|dfV  t          j        d                    |          t          d           |dfV  Tt          |           dfV  d S )N__middleware_version__r   Tz1old-style middleware "{!r}" deprecated, see #2252rU   rV   F)reversedr?   r   rX   rY   re   rZ   r(   )r^   ms     r_   r   zApplication._prepare_middleware  s      $+,, 		 		Aq2D99Q>>gJQQRSTT&    
 h&t,,d222222ra   requestc                   K   t          j                    }|                                }| j                            |           d {V }|r7t          |t                    s"t          d                    |                    |	                    |            |
                                 d }||_        |j                            t          j                  }|r:|                    |           d {V }|j                                         d {V  |s|j        }| j        rT|j        d d d         D ]C}|j        D ]9\  }	}
|
r t/          t1          |	|          |          }' |	||           d {V }:D ||           d {V }|S )Nz9match_info should be AbstractMatchInfo instance, not {!r})r   )r   r   r   r<   resolver[   r   r   re   add_appr   _match_infoheadersr   r   EXPECTexpect_handlerr   drainr   rA   appsr@   r   r   )r^   r   rQ   rR   
match_inforespexpectr   r   r   	new_styles              r_   r   zApplication._handle  s     %''  <//88888888
 	j*;<< ))/
););   	4   ($$T[11 	)#227;;;;;;;;D.&&(((((((((< (G$ <%?44R40 < <C(+(A < <9$ <&4 '7 ; ; ;W' 'GG -.Ac7OO&;&;&;&;&;&;GG< !))))))))Dra   c                     | S )zgunicorn compatibilityrL   r{   s    r_   __call__zApplication.__call__#  s    ra   c                 *    dt          |           ddS )Nz<Application 0xx>)idr{   s    r_   __repr__zApplication.__repr__'  s    .D.....ra   c                     dS r   rL   r{   s    r_   __bool__zApplication.__bool__*  s    tra   rS   N).rq   )r   r5   rS   N)rS   r\   )rS   r5   )Yrf   
__module____qualname__	frozensetrk   r#   loggingLoggerr   r4   r   r%   r   r   r   intr   r   r`   r   rg   r    rm   objectboolrr   r   r!   r7   rv   r   r|   r   r   r   r   r   r   r8   propertyrQ   r   r   r   r   r   rR   r   r.   r   r	   r   r   r,   r   r/   r   _RespPrepareSignalr   
_AppSignalr   r   r   r   rM   _MiddlewaresrN   r'   r   r-   r   r   r   r   r   r*   r"   r$   r)   r   r   r   r   r+   r   r	  r  r  __classcell__rn   s   @r_   r5   r5   Q   s       I	
 	
 	
 E4 ",*.,.48&4850 50 50 50 '	50
 j)50 wsCx0150 50 w0150 50 
50 50 50 50n
tM2 
t 
 
 
 
  
+	+C 	+c 	+d 	+ 	+ 	+ 	+ 	+ 	+F t     vbz b    X s s    X uS&*_5  #            vbz "     X s 3 4    X
!uS&*_5 
!c 
!d 
! 
! 
! 
!uS&*_5 $             !(5fSk)9#:; ! ! ! !  vbz D 8B<    X vbz B 5R=    X  s S 3    X- -uS&*_- - -s - - - - ;g/ ; ; ; X;#hw'@A #d # # # #$  D       X U U U U2     X    t    X" " " "1 1m 1@P 1 1 1 1 (-=)= >HU	    1 1m 1@P 1 1 1 1.*:!; .]@S . . . . )%7 ) ) ) X)  J       X  !Z ! ! ! X!  J       X  ! ! ! X!     X !\ ! ! ! X! 597C	
 
 
 w01
 34	

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

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

 %
 #
 7m
 

 
 
 
&3XeJ4D.E%F 3 3 3 3$W $ $ $ $ $L   /# / / / /$        ra   c                   6    e Zd Zedee         fd            ZdS )r6   rS   c                 X    t          t          t                   | j        d                   S )Nr   )r   r   BaseExceptionargsr{   s    r_   
exceptionszCleanupError.exceptions/  s    D'1666ra   N)rf   r  r  r  r   r"  r$  rL   ra   r_   r6   r6   .  s>        7D/ 7 7 7 X7 7 7ra   r6   c                   @     e Zd Zd fdZdeddfdZdeddfdZ xZS )r\   rS   Nc                 V    t                                                       g | _        d S rq   )rl   r`   _exits)r^   rn   s    r_   r`   zCleanupContext.__init__;  s$    13ra   r   c                    K   | D ]S} ||                                           }|                                 d {V  | j                            |           Td S rq   )	__aiter__	__anext__r'  r]   )r^   r   cbits       r_   rG   zCleanupContext._on_startup?  sq       	# 	#BC""$$B,,..       Kr""""	# 	#ra   c                   K   g }t          | j                  D ]y}	 |                                 d {V  |                    t	          |d                     C# t
          $ r Y Ot          $ r}|                    |           Y d }~rd }~ww xY w|r+t          |          dk    r|d         t          d|          d S )Nz has more than one 'yield'r   r   z Multiple errors on cleanup stage)	r   r'  r*  r]   r   StopAsyncIteration	Exceptionr   r6   )r^   r   errorsr,  excs        r_   rI   zCleanupContext._on_cleanupE  s     4;'' 	Q 	QBQllnn$$$$$$$ lb+N+N+NOOPPPP &    # # #c""""""""#  	O6{{aQi"#EvNNN		O 	Os   A
B(	B1BBr  )rf   r  r  r`   r5   rG   rI   r  r  s   @r_   r\   r\   :  s        4 4 4 4 4 4#[ #T # # # #O[ OT O O O O O O O Ora   r\   )Wr   r  rX   	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__r  r  r  r  _MiddlewaresHandlers_Subappsr7   r8   r   r5   r   r6   _CleanupContextBaser\   rL   ra   r_   <module>rJ     sb      - - - - - - - -                                         ,       ! ! ! ! ! !                  # " " " " " " " * * * * * *       ! ! ! ! ! !             , , , , , , ! ! ! ! ! ! 5 5 5 5 5 5 ( ( ( ( ( (             ( ( ( ( ( ( * * * * * *                        *  -)D/!ABCJ'>)BIdO)S TUj)L#HU:t3C-D$EFM"HH JL#H-HWT]]WT]]Z Z Z Z Z.sF3K'7!8#!=> Z Z Zz7 7 7 7 7< 7 7 7  %$X{m]4=P.P%QR$O O O O O( O O O O Ora   