
    hbL              	          d dl Z d dlZd dlZd dlmZ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/m0Z0m1Z1 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@mAZA ddlBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJ dZKerVeedged         f                  ZLeee;e=ged         f                  ZMee1         ZNeeee1eOf                           ZPed         ZQneZLeZMeZNee         ZPeZQ ed          ZR ed          ZS edeC          ZTde0ded         d ee;gee=         f         fd!ZU  ed"#          eU          ZV G d$ deeeWe(e	         f         e	f                   ZX G d% d&eY          ZZereeeXge
d         f                  Z[neZ[ G d' d(e[          Z\dS ))    N)	lru_cache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)Handler
Middleware)NotAppKeyWarning)AccessLogger)_fix_request_current_app)RequestHandler)Request)StreamResponse)AbstractRouteDef)Server)AbstractResourceAbstractRouteDomain
MaskDomainMatchedSubAppResourcePrefixedSubAppResourceSystemRouteUrlDispatcher)ApplicationCleanupErrorr8   _T_U	_Resource)boundhandlerapps)r8   .returnc                 z    |ddd         D ].}|j         D ]$\  }}t          t          ||           |           } %/| S )zApply middlewares to handler.Nr>   )_middlewares_handlersr   r   )r>   r?   appm_s        Q/var/www/html/prod/cognitive/venv/lib/python3.11/site-packages/aiohttp/web_app.py_build_middlewaresrI   S   s`     DDbDz K K- 	K 	KDAq$WQ%@%@%@'JJGG	KN    i   )maxsizec                   j    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dXd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$defd#Z%edYd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dYded$edefd'            Z&dZd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+dXd,Z,e(defd-            Z-dXd.Z.e(defd/            Z/d[d1Z0d2ed0d de1fd3Z2d4e3g e4f         d0d de4fd5Z5d6ed0d de6fd7Z7d8e
e8         de9e:         fd9Z;e(de<fd:            Z=e(de>fd;            Z?e(de>fd<            Z@e(de>fd=            ZAe(d\d?            ZBe(de	fd@            ZCe(deDfdA            ZEdeFdBdeej                 dCeeG         dDedeHfdEZIdeFdBdeej                 dCeeG         dDedeHfdFZJdXdGZKdXdHZLdXdIZMeNfdJeOdKePdLeQdMeRdNdOdPeeN         deNfdQZSde#eTeef                  fdRZUdSeNdeVfdTZWd]dUZXdefdVZYdefdWZZ xZ[S )^r8   )logger_debug_router_loop_handler_args_middlewaresrD   _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   .)rM   routermiddlewareshandler_argsclient_max_sizeloopdebugrM   r`   ra   rb   rc   rd   re   r@   c                N   |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 | _        d| _        i | _        d| _        d| _        g | _        t)          |           | _        t)          |           | _        t)          |           | _        t)          |           | _        t3                      | _        | j                            | j        j                   | j                            | j        j                   || _        d S )	Nzrouter argument is deprecated   
stacklevelzloop argument is deprecated.zdebug argument is deprecatedTF)r7   warningswarnDeprecationWarning
isinstancer   rN   rO   rP   rQ   rM   r   rR   rD   rT   rS   rU   rV   rW   rX   r   rY   rZ   r[   r\   CleanupContextr^   appendr]   )selfrM   r`   ra   rb   rc   rd   re   s           rH   __init__zApplication.__init__y   s    >"__FFM/1CPQ    &.11996991M-/Aa    M.0Bq    &,
)*4[*A*A <@"04-1$=? "$8>t!'-d||(.t'-d||*,, 1 =>>> 1 =>>> /rJ   clsc                 n    t          j        d                    | j                  t          d           d S )Nz8Inheritance class {} from web.Application is discouraged   rh   )rj   rk   format__name__rl   )rr   s    rH   __init_subclass__zApplication.__init_subclass__   s?    #VCL11		
 	
 	
 	
 	
 	
rJ   namevalc                     || j         vr/t          j        d                    |          t          d           t                                          ||           d S )Nz:Setting custom web.Application.{} attribute is discouragedrg   rh   )ATTRSrj   rk   ru   rl   super__setattr__)rp   rx   ry   	__class__s      rH   r}   zApplication.__setattr__   sa    4:%%%%+VD\\& 	    GGc*****rJ   otherc                 
    | |u S Nr_   )rp   r   s     rH   __eq__zApplication.__eq__   s    u}rJ   keyc                     d S r   r_   rp   r   s     rH   __getitem__zApplication.__getitem__   s    25#rJ   c                     d S r   r_   r   s     rH   r   zApplication.__getitem__   s    ,/CrJ   c                     | j         |         S r   )rU   r   s     rH   r   zApplication.__getitem__   s    {3rJ   c                 P    | j         rt          j        dt          d           d S d S )Nz=Changing state of started or joined application is deprecatedrt   rh   )rV   rj   rk   rl   rp   s    rH   _check_frozenzApplication._check_frozen   sB    < 	MO"     	 	rJ   valuec                     d S r   r_   rp   r   r   s      rH   __setitem__zApplication.__setitem__   s    ?BsrJ   c                     d S r   r_   r   s      rH   r   zApplication.__setitem__   s    9<rJ   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-configrg   )categoryri   )r   rm   r"   rj   rk   r(   rU   r   s      rH   r   zApplication.__setitem__   s`    #v&& 	M* *    !CrJ   c                 >    |                                   | j        |= d S r   )r   rU   r   s     rH   __delitem__zApplication.__delitem__   s$    KrJ   c                 *    t          | j                  S r   )lenrU   r   s    rH   __len__zApplication.__len__   s    4;rJ   c                 *    t          | j                  S r   )iterrU   r   s    rH   __iter__zApplication.__iter__   s    DK   rJ   c                      t          |           S r   idr   s    rH   __hash__zApplication.__hash__   s    $xxrJ   defaultc                     d S r   r_   rp   r   r   s      rH   getzApplication.get   s    ILrJ   c                     d S r   r_   r   s      rH   r   zApplication.get   s    BE#rJ   c                     d S r   r_   r   s      rH   r   zApplication.get   s    8;rJ   c                 8    | j                             ||          S r   )rU   r   r   s      rH   r   zApplication.get  s    {sG,,,rJ   c                 x    t          j        dt          d           t          t          j        | j                  S )Nzloop property is deprecatedrg   rh   )rj   rk   rl   r   asyncioAbstractEventLooprP   r   s    rH   rd   zApplication.loop  s3    
 	35GTUVVVVG-tz:::rJ   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_looprP   RuntimeErrorrN   	get_debugrX   	_set_loop)rp   rd   subapps      rH   r   zApplication._set_loop  s    <)++D:!dj&<&<J   
 ;#..**DK m 	# 	#FT""""	# 	#rJ   c                     | j         S r   )rW   r   s    rH   
pre_frozenzApplication.pre_frozen!      rJ   c                    | j         rd S d| _         | j                                         | j                                         | j                                         | j                                         | j                                         | j                                         | j                                         t          | 
                                          | _        t          d | j        D                       | _        | j        rdnd| _        | j        D ])}|                                 | j        p|j        | _        *d S )NTc              3   "   K   | ]
\  }}| V  d S r   r_   ).0rG   	new_styles      rH   	<genexpr>z)Application.pre_freeze.<locals>.<genexpr>2  s9       +
 +
*a	M+
 +
 +
 +
 +
 +
rJ   F)rW   rR   freezerO   rY   r^   rZ   r[   r\   tuple_prepare_middlewarerD   anyrS   ra   rT   rX   
pre_freezerp   r   s     rH   r   zApplication.pre_freeze%  sV    	F  """!((***  """!!!  """!!!%*4+C+C+E+E%F%F"'* +
 +
.2.H+
 +
 +
 (
 (
$ )-(8 Cem 	U 	UF$($9$TV=TD!!	U 	UrJ   c                     | j         S r   )rV   r   s    rH   frozenzApplication.frozenA  
    |rJ   c                     | j         rd S |                                  d| _         | j        D ]}|                                 d S NT)rV   r   rX   r   r   s     rH   r   zApplication.freezeE  sR    < 	Fm 	 	FMMOOOO	 	rJ   c                 H    t          j        dt          d           | j        S )Nzdebug property is deprecatedrg   rh   )rj   rk   rl   rN   r   s    rH   re   zApplication.debugN  s$    46HUVWWWW{rJ   r   c                 l     dt           dd f fd} |d            |d            |d           d S )Nsignamer@   c                     t          |           dfd}t          |           }|                    |           d S )NrE   r8   r@   c                 B   K                                   d {V  d S r   )send)rE   r   subsigs    rH   r>   zEApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handlerW  s1      kk&)))))))))))rJ   )rE   r8   r@   N)getattrro   )r   r>   appsigr   rp   r   s      @rH   reg_handlerz4Application._reg_subapp_signals.<locals>.reg_handlerT  s_    VW--F* * * * * * * T7++FMM'"""""rJ   
on_startupon_shutdown
on_cleanup)str)rp   r   r   s   `` rH   _reg_subapp_signalszApplication._reg_subapp_signalsS  sm    	# 	# 	# 	# 	# 	# 	# 	# 	# 	L!!!M"""L!!!!!rJ   prefixc                     t          |t                    st          d          |                    d          }|st	          d          t          t          ||          }|                     ||          S )NzPrefix must be str/zPrefix cannot be empty)rm   r   	TypeErrorrstrip
ValueErrorr   r5   _add_subapp)rp   r   r   factorys       rH   
add_subappzApplication.add_subappa  ss    &#&& 	20111s## 	756660&&AA000rJ   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   r`   register_resourcer   rX   ro   r   rP   r   )rp   r   r   resources       rH   r   zApplication._add_subappj  s     ; 	SQRRR= 	@>???##%%%%h///  (((V$$$:!TZ(((rJ   domainc                     t          |t                    st          d          d|v rt          |          }nt	          |          }t          t          ||          }|                     ||          S )NzDomain must be str*)rm   r   r   r3   r2   r   r4   r   )rp   r   r   ruler   s        rH   
add_domainzApplication.add_domainz  sn    &#&& 	"0111F]]%f--DD&>>D/v>>000rJ   routesc                 6    | j                             |          S r   )r`   
add_routes)rp   r   s     rH   r   zApplication.add_routes  s    {%%f---rJ   c                     | j         S r   )rY   r   s    rH   on_response_preparezApplication.on_response_prepare  s    ((rJ   c                     | j         S r   )rZ   r   s    rH   r   zApplication.on_startup  r   rJ   c                     | j         S r   )r[   r   s    rH   r   zApplication.on_shutdown        rJ   c                     | j         S r   )r\   r   s    rH   r   zApplication.on_cleanup  r   rJ   rn   c                     | j         S r   )r^   r   s    rH   cleanup_ctxzApplication.cleanup_ctx  r   rJ   c                     | j         S r   )rO   r   s    rH   r`   zApplication.router  r   rJ   c                     | j         S r   )rR   r   s    rH   ra   zApplication.middlewares  r   rJ   rd   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 {}re   r   )request_factoryrd   )
issubclassr   r   ru   r   r   rN   rQ   itemsr/   _handle_make_requestrP   )rp   rd   r   r   kvs         rH   _make_handlerzApplication._make_handler  s     *,@AA 	;;A6BR;S;S  
 	t+w%5!" 	*0022  1q		L
 .
 
 	
 
 	
rJ   c                Z    t          j        dt          d            | j        d||d|S )NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrg   rh   r   r_   )rj   rk   rl   r   )rp   rd   r   r   s       rH   make_handlerzApplication.make_handler  sW     	T	
 	
 	
 	
 "t! 
(8
 
<B
 
 	
rJ   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    rH   startupzApplication.startup  s6      
 o""4(((((((((((rJ   c                 J   K   | j                             |            d{V  dS )zMCauses on_shutdown signal

        Should be called before cleanup()
        N)r   r   r   s    rH   shutdownzApplication.shutdown  s7      
 ##D)))))))))))rJ   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   r^   r\   r   s    rH   cleanupzApplication.cleanup  st      
 ?! 	6/&&t,,,,,,,,,,, #//55555555555rJ   messagepayloadprotocolwritertaskzasyncio.Task[None]_clsc           	      Z    t           r	| j        J  ||||||| j        | j                  S )N)rc   )r   rP   r]   )rp   r  r  r  r  r  r	  s          rH   r   zApplication._make_request  sM      	*:)))tJ 1
 
 
 	
rJ   c              #      K   t          | j                  D ]D}t          |dd           dk    r|dfV  t          j        d|dt
          d           |dfV  Et          |           dfV  d S )	N__middleware_version__r   Tzold-style middleware "z" deprecated, see #2252rg   rh   F)reversedrR   r   rj   rk   rl   r*   )rp   rF   s     rH   r   zApplication._prepare_middleware  s      $+,, 		 		Aq2D99Q>>gIQIII&    
 h&t,,d222222rJ   requestc                 ~  K   t          j                    }|                                }| j                            |           d {V }|r7t          |t                    s"t          d                    |                    |	                    |            |
                                 ||_        |j                            t          j                  r>|                    |           d {V }|j                                         d {V  ||S |j        }| j        r| j        s0t          |j        t.                    st1          ||j                  }nT|j        d d d         D ]C}|j        D ]9\  }}	|	r t7          t9          ||          |          }' |||           d {V }:D ||           d {V S )Nz9match_info should be AbstractMatchInfo instance, not {!r}rB   rC   )r   r   r   rO   resolverm   r   r   ru   add_appr   _match_infoheadersr   r   EXPECTexpect_handlerr  drainr>   rT   rS   router6   _cached_build_middlewarer?   rD   r   r   )
rp   r  rd   re   
match_inforespr>   rE   rF   r   s
             rH   r   zApplication._handle  s"     %''  <//88888888
 	j*;<< ))/
););   	4   (?t{++ 	#227;;;;;;;;D.&&((((((((($  	< / <
 +9 9 < 37JOLL%?44R40 < <C(+(A < <9$ <&4 '7 ; ; ;W' 'GG -.Ac7OO&;&;&;&;&;&;GG< WW%%%%%%%%%rJ   c                     | S )zgunicorn compatibilityr_   r   s    rH   __call__zApplication.__call__;  s    rJ   c                 *    dt          |           ddS )Nz<Application 0xx>r   r   s    rH   __repr__zApplication.__repr__?  s    .D.....rJ   c                     dS r   r_   r   s    rH   __bool__zApplication.__bool__B  s    trJ   r@   N).r   )r   r8   r@   N)r@   rn   )r@   r8   )\rv   
__module____qualname__	frozensetr{   r$   loggingLoggerr   r7   r   r'   r   r   r   intr   r   rq   r   rw   r!   r}   objectboolr   r   r"   r:   r   r   r   r   r   r   r   r   r   r   r;   propertyrd   r   r   r   r   r   re   r   r5   r   r
   r<   r   r4   r   r.   r   r1   r   _RespPrepareSignalr   
_AppSignalr   r   r   r   r`   _Middlewaresra   r)   r   r/   r   r   r   r  r  r,   r#   r%   r+   r    r   r   r   r-   r   r  r   r"  __classcell__r~   s   @rH   r8   r8   `   s       I	
 	
 	
 E6 ",*.,.48&4860 60 60 60 '	60
 j)60 wsCx0160 60 w0160 60 
60 60 60 60p
tM2 
t 
 
 
 
  
+	+C 	+c 	+d 	+ 	+ 	+ 	+ 	+ 	+F t     5vbz5b555 X5/s/s/// X/ uS&*_5  #            BvbzB"BBBB XB<s<3<4<<< X<
!uS&*_5 
!c 
!d 
! 
! 
! 
!uS&*_5 $             !(5fSk)9#:; ! ! ! !#     LLvbzLDL8B<LLL XLEvbzEBE5R=EEE XE;;s;S;3;;; X;- -uS&*_- - -s - - - - ;g/ ; ; ; X;#hw'@A #d # # # #$  D       X U U U U8     X    t    X" " " "1 1m 1@V 1 1 1 1 (Y 7AN	    1 1m 1@U 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 *& *& *& *& *&X   /# / / / /$        rJ   c                   6    e Zd Zedee         fd            ZdS )r9   r@   c                 X    t          t          t                   | j        d                   S )Nr   )r   r   BaseExceptionargsr   s    rH   
exceptionszCleanupError.exceptionsG  s    D'1666rJ   N)rv   r$  r%  r,  r   r4  r6  r_   rJ   rH   r9   r9   F  s>        7D/ 7 7 7 X7 7 7rJ   r9   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 )rn   r@   Nc                 V    t                                                       g | _        d S r   )r|   rq   _exits)rp   r~   s    rH   rq   zCleanupContext.__init__S  s$    13rJ   rE   c                    K   | D ]S} ||                                           }|                                 d {V  | j                            |           Td S r   )	__aiter__	__anext__r9  ro   )rp   rE   cbits       rH   rZ   zCleanupContext._on_startupW  sq       	# 	#BC""$$B,,..       Kr""""	# 	#rJ   c                   K   g }t          | j                  D ]}	 |                                 d {V  |                    t	          |d                     C# t
          $ r Y Ot          t          j        f$ r}|                    |           Y d }~~d }~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  r9  r<  ro   r   StopAsyncIteration	Exceptionr   CancelledErrorr   r9   )rp   rE   errorsr>  excs        rH   r\   zCleanupContext._on_cleanup]  s     4;'' 	Q 	QBQllnn$$$$$$$ lb+N+N+NOOPPPP &   w56 # # #c""""""""#  	O6{{aQi"#EvNNN		O 	Os   A
B(B=BBr#  )rv   r$  r%  rq   r8   rZ   r\   r0  r1  s   @rH   rn   rn   R  s        4 4 4 4 4 4#[ #T # # # #O[ OT O O O O O O O OrJ   rn   )]r   r'  rj   	functoolsr   r   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&   r'   web_exceptionsr(   web_logr)   web_middlewaresr*   web_protocolr+   web_requestr,   web_responser-   web_routedefr.   
web_serverr/   web_urldispatcherr0   r1   r2   r3   r4   r5   r6   r7   __all__r.  r-  r/  r+  _MiddlewaresHandlers_Subappsr:   r;   r<   rI   r  r   r8   r   r9   _CleanupContextBasern   r_   rJ   rH   <module>r]     s      8 8 8 8 8 8 8 8 8 8                                         ,       ! ! ! ! ! !                  # " " " " " " " * * * * * *       ! ! ! ! ! ! ) ) ) ) ) ) ) ) , , , , , , ! ! ! ! ! ! 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]]GK'7888	!"45wi>223    399T2223EFF c c c c c.sF3K'7!8#!=> c c cL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rJ   