HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/aiohttp/__pycache__/web_app.cpython-310.pyc
o

���gbL�	@s�ddlZddlZddlZddlmZmZmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZddlmZddlmZddlm Z ddl!m"Z"m#Z#m$Z$m%Z%dd	l&m'Z'm(Z(dd
l)m*Z*ddl+m,Z,ddl-m.Z.dd
l/m0Z0m1Z1ddl2m3Z3ddl4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;ddl<m=Z=ddl>m?Z?ddl@mAZAddlBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJdZKer�eedgedfZLeee;e=gedfZMee1ZNeeee1eOfZPedZQneZLeZMeZNeeZPeZQed�ZRed�ZSedeCd�ZTde0dedd ee;gee=ffd!d"�ZUed#d$�eU�ZVGd%d�deeeWe(e	fe	f�ZXGd&d'�d'eY�ZZe�rPeeeXge
dfZ[neZ[Gd(d)�d)e[�Z\dS)*�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�CleanupErrorr7�_T�_U�	_Resource)�bound�handler�apps)r7.�returncCs:|ddd�D]}|jD]
\}}tt||d�|�}qq|S)zApply middlewares to handler.N����r=)�_middlewares_handlersrr)r=r>�app�m�_�rF�:/usr/local/lib/python3.10/dist-packages/aiohttp/web_app.py�_build_middlewaresSs
�rHi)�maxsizecs�eZdZegd��Zeddddddd�dejdee	d	e
ed
eee
efdedeejd
eddfdd�Zdedddfdd�ZerPde
deddf�fdd�Zdedefdd�Zedeedefdd��Zede
defdd��Zdee
eefdefdd�Zd�d d!�Zedeed"eddfd#d$��Z ede
d"eddfd%d$��Z dee
eefd"eddfd&d$�Z dee
eefddfd'd(�Z!defd)d*�Z"de#ee
eeffd+d,�Z$defd-d.�Z%ed�deed/ddeefd0d1��Z&edeed/e'deee'ffd2d1��Z&ed�de
d/edefd3d1��Z&d�dee
eefd/edefd4d1�Z&e(dejfd5d6��Z)deejddfd7d8�Z*e(defd9d:��Z+d�d;d<�Z,e(defd=d>��Z-d�d?d@�Z.e(defdAdB��Z/d�dDdE�Z0dFe
dCdde1fdGdH�Z2dIe3ge4fdCdde4fdJdK�Z5dLe
dCdde6fdMdN�Z7dOe
e8de9e:fdPdQ�Z;e(de<fdRdS��Z=e(de>fdTdU��Z?e(de>fdVdW��Z@e(de>fdXdY��ZAe(d�d[d\��ZBe(de	fd]d^��ZCe(deDfd_d`��ZEdeFda�deejdbeeGdcedeHfddde�ZIdeFda�deejdbeeGdcedeHfdfdg�ZJd�dhdi�ZKd�djdk�ZLd�dldm�ZMeNfdneOdoePdpeQdqeRdrdsdteeNdeNfdudv�ZSde#eTeeffdwdx�ZUdyeNdeVfdzd{�ZWd�d|d}�ZXde
fd~d�ZYdefd�d��ZZ�Z[S)�r7)�logger�_debug�_router�_loop�
_handler_args�_middlewaresrB�_has_legacy_middlewares�_run_middlewares�_state�_frozen�_pre_frozen�_subapps�_on_response_prepare�_on_startup�_on_shutdown�_on_cleanup�_client_max_size�_cleanup_ctxNrFi.)rJ�router�middlewares�handler_args�client_max_size�loop�debugrJr\r]r^r_r`rar?cCs|durt�}ntjdtdd�t|t�sJ|��|dur%tjdtdd�|dur1tjdtdd�||_||_||_||_	||_
t|�|_d|_
d|_d|_i|_d|_d|_g|_t|�|_t|�|_t|�|_t|�|_t�|_|j�|jj�|j�|jj�||_dS)	Nzrouter argument is deprecated���
stacklevelzloop argument is deprecated.zdebug argument is deprecatedTF)r6�warnings�warn�DeprecationWarning�
isinstancerrKrLrMrNrJrrOrBrQrPrRrSrTrUrrVrWrXrY�CleanupContextr[�appendrZ)�selfrJr\r]r^r_r`rarFrFrG�__init__ysF���





zApplication.__init__�clscCstjd�|j�tdd�dS)Nz8Inheritance class {} from web.Application is discouraged�rc)rerf�format�__name__rg)rmrFrFrG�__init_subclass__�s
�zApplication.__init_subclass__�name�valcs2||jvrtjd�|�tdd�t��||�dS)Nz:Setting custom web.Application.{} attribute is discouragedrbrc)�ATTRSrerfrorg�super�__setattr__)rkrrrs��	__class__rFrGrv�s
�zApplication.__setattr__�othercCs||uS�NrF)rkryrFrFrG�__eq__��zApplication.__eq__�keycC�dSrzrF�rkr}rFrFrG�__getitem__��zApplication.__getitem__cCr~rzrFrrFrFrGr��r�cCs
|j|Srz)rRrrFrFrGr���
cCs|jr
tjdtdd�dSdS)Nz=Changing state of started or joined application is deprecatedrnrc)rSrerfrg�rkrFrFrG�
_check_frozen�s
��zApplication._check_frozen�valuecCr~rzrF�rkr}r�rFrFrG�__setitem__�r�zApplication.__setitem__cCr~rzrFr�rFrFrGr��r�cCs0|��t|t�stjdtdd�||j|<dS)Nz�It is recommended to use web.AppKey instances for keys.
https://docs.aiohttp.org/en/stable/web_advanced.html#application-s-configrb)�categoryrd)r�rhr!rerfr'rRr�rFrFrGr��s
�cCs|��|j|=dSrz)r�rRrrFrFrG�__delitem__�szApplication.__delitem__cC�
t|j�Srz)�lenrRr�rFrFrG�__len__�r�zApplication.__len__cCr�rz)�iterrRr�rFrFrG�__iter__�r�zApplication.__iter__cCst|�Srz��idr�rFrFrG�__hash__�r|zApplication.__hash__�defaultcCr~rzrF�rkr}r�rFrFrG�get�r�zApplication.getcCr~rzrFr�rFrFrGr��r�cCr~rzrFr�rFrFrGr�r�cCs|j�||�Srz)rRr�r�rFrFrGr�scCstjdtdd�ttj|j�S)Nzloop property is deprecatedrbrc)rerfrgr�asyncio�AbstractEventLooprMr�rFrFrGr`szApplication.loopcCs`|durt��}|jdur|j|urtd��||_|jdur#|��|_|jD]}|�|�q&dS)Nz8web.Application instance initialized with different loop.)r��get_event_looprM�RuntimeErrorrK�	get_debugrU�	_set_loop)rkr`�subapprFrFrGr�s�


�zApplication._set_loopcC�|jSrz)rTr�rFrFrG�
pre_frozen!�zApplication.pre_frozencCs�|jrdSd|_|j��|j��|j��|j��|j��|j��|j��t	|�
��|_tdd�|jD��|_
|jrBdnd|_|jD]
}|��|jpS|j|_qHdS)NTcss�|]\}}|VqdSrzrF)�.0rE�	new_stylerFrFrG�	<genexpr>2s�

�z)Application.pre_freeze.<locals>.<genexpr>F)rTrO�freezerLrVr[rWrXrY�tuple�_prepare_middlewarerB�anyrPr]rQrU�
pre_freeze�rkr�rFrFrGr�%s&







�	
�zApplication.pre_freezecCr�rz)rSr�rFrFrG�frozenAr�zApplication.frozencCs0|jrdS|��d|_|jD]}|��qdS�NT)rSr�rUr�r�rFrFrGr�Es

�zApplication.freezecCstjdtdd�|jS)Nzdebug property is deprecatedrbrc)rerfrgrKr�rFrFrGraNszApplication.debugr�cs4dtddf��fdd�}|d�|d�|d�dS)N�signamer?cs2t�|��d��fdd�}t�|�}|�|�dS)NrCr7r?c�s�����IdHdSrz)�send)rC)r��subsigrFrGr=Ws�zEApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handler)rCr7r?N)�getattrrj)r�r=�appsigr�)r�rG�reg_handlerTs

z4Application._reg_subapp_signals.<locals>.reg_handler�
on_startup�on_shutdown�
on_cleanup)�str)rkr�r�rFr�rG�_reg_subapp_signalsSs	zApplication._reg_subapp_signals�prefixcCs@t|t�s	td��|�d�}|std��tt||�}|�||�S)NzPrefix must be str�/zPrefix cannot be empty)rhr��	TypeError�rstrip�
ValueErrorrr4�_add_subapp)rkr�r��factoryrFrFrG�
add_subappas

zApplication.add_subapp�resource_factorycCsf|jrtd��|jrtd��|�}|j�|�|�|�|j�|�|��|jdur1|�	|j�|S)Nz0Cannot add sub application to frozen applicationzCannot add frozen application)
r�r�r\�register_resourcer�rUrjr�rMr�)rkr�r��resourcerFrFrGr�js

zApplication._add_subapp�domaincCsDt|t�s	td��d|vrt|�}nt|�}tt||�}|�||�S)NzDomain must be str�*)rhr�r�r2r1rr3r�)rkr�r��ruler�rFrFrG�
add_domainzs

zApplication.add_domain�routescCs|j�|�Srz)r\�
add_routes)rkr�rFrFrGr��szApplication.add_routescCr�rz)rVr�rFrFrG�on_response_prepare�r�zApplication.on_response_preparecCr�rz)rWr�rFrFrGr��r�zApplication.on_startupcCr�rz)rXr�rFrFrGr��r�zApplication.on_shutdowncCr�rz)rYr�rFrFrGr��r�zApplication.on_cleanupricCr�rz)r[r�rFrFrG�cleanup_ctx�r�zApplication.cleanup_ctxcCr�rz)rLr�rFrFrGr\�r�zApplication.routercCr�rz)rOr�rFrFrGr]�r�zApplication.middlewares�r`�access_log_classr��kwargscKszt|t�std�|���|�|�|��|j|d<||d<|jr/|j��D]\}}|||<q&t	|j
f|j|jd�|��S)NzMaccess_log_class must be subclass of aiohttp.abc.AbstractAccessLogger, got {}rar�)�request_factoryr`)
�
issubclassrr�ror�r�rKrN�itemsr.�_handle�
_make_requestrM)rkr`r�r��k�vrFrFrG�
_make_handler�s(
�


���zApplication._make_handlercKs&tjdtdd�|jd||d�|��S)NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrbrcr�rF)rerfrgr�)rkr`r�r�rFrFrG�make_handler�s���zApplication.make_handlerc���|j�|�IdHdS)zmCauses on_startup signal

        Should be called in the event loop along with the request handler.
        N)r�r�r�rFrFrG�startup���zApplication.startupc�r�)zMCauses on_shutdown signal

        Should be called before cleanup()
        N)r�r�r�rFrFrG�shutdown�r�zApplication.shutdownc�s6�|jjr|j�|�IdHdS|j�|�IdHdS)zLCauses on_cleanup signal

        Should be called after shutdown()
        N)r�r�r�r[rYr�rFrFrG�cleanup�s�zApplication.cleanup�message�payload�protocol�writer�taskzasyncio.Task[None]�_clsc	Cs,tr	|jdus	J�|||||||j|jd�S)N)r_)rrMrZ)rkr�r�r�r�r�r�rFrFrGr��s	�zApplication._make_requestccsb�t|j�D]!}t|dd�dkr|dfVqtjd|�d�tdd�|dfVqt|�dfVdS)	N�__middleware_version__rTzold-style middleware "z" deprecated, see #2252rbrcF)�reversedrOr�rerfrgr))rkrDrFrFrGr�s�
�zApplication._prepare_middleware�requestc
�s�t��}|��}|j�|�IdH}|r t|t�s td�|���|�	|�|�
�||_|j�
tj�rI|�|�IdH}|j��IdH|durI|S|j}|jr�|js_t|jt�s_t||j�}n'|jddd�D]}|jD]\}}	|	r|tt||d�|�}ql|||�IdH}qlqg||�IdHS)Nz9match_info should be AbstractMatchInfo instance, not {!r}r@rA)r�r�r�rL�resolverhrr�ro�add_appr��_match_info�headersr�r�EXPECT�expect_handlerr��drainr=rQrP�router5�_cached_build_middlewarer>rBrr)
rkr�r`ra�
match_info�respr=rCrDr�rFrFrGr�sB�
�
���zApplication._handlecCs|S)zgunicorn compatibilityrFr�rFrFrG�__call__;szApplication.__call__cCsdt|�d�d�S)Nz<Application 0x�x�>r�r�rFrFrG�__repr__?szApplication.__repr__cCsdSr�rFr�rFrFrG�__bool__Br�zApplication.__bool__�r?N).rz)r�r7r?N)r?ri)r?r7)\rp�
__module__�__qualname__�	frozensetrtr#�logging�Loggerrr6rr&rr�r�intr�r�rlrrqr rv�object�boolr{rr!r9r�rr�r�r�r�rr�r�r�r:�propertyr`r�r�r�r�r�rar�r4r�r	r;r�r3r�r-r
r0r��_RespPrepareSignalr��
_AppSignalr�r�r�r�r\�_Middlewaresr]r(rr.r�r�r�r�r�r+r"r$r*rr�rr�r,r�r�r�r��
__classcell__rFrFrwrGr7`s��������	�

�8
""$$

	
	
��
�
����
�!����
�


�������
�
,c@s"eZdZedeefdd��ZdS)r8r?cCsttt|jd�S)Nr)rr
�
BaseException�argsr�rFrFrG�
exceptionsGszCleanupError.exceptionsN)rpr�r�r�r
rrrFrFrFrGr8Fsr8csBeZdZd
�fdd�Zdeddfdd�Zdeddfdd	�Z�ZS)rir?Ncst���g|_dSrz)rurl�_exitsr�rwrFrGrlSs

zCleanupContext.__init__rCc�s6�|D]}||���}|��IdH|j�|�qdSrz)�	__aiter__�	__anext__rrj)rkrC�cb�itrFrFrGrWWs��zCleanupContext._on_startupc�s��g}t|j�D]8}z	|��IdHWn"tyYqttjfy5}z|�|�WYd}~qd}~ww|�t|�d���q|rRt	|�dkrM|d�t
d|��dS)Nz has more than one 'yield'rrz Multiple errors on cleanup stage)r�rr�StopAsyncIteration�	Exceptionr��CancelledErrorrjr�r�r8)rkrC�errorsr�excrFrFrGrY]s"���
�zCleanupContext._on_cleanupr�)rpr�r�rlr7rWrYr�rFrFrwrGriRsri)]r�r�re�	functoolsrrr�typingrrrrr	r
rrr
rrrrrrrrrr�	aiosignalr�
frozenlistr�r�abcrrrr�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/r0r1r2r3r4r5r6�__all__r�r�r�r��_MiddlewaresHandlers�_Subappsr9r:r;rHr�r�r7r�r8�_CleanupContextBaserirFrFrFrG�<module>snT(
��
�
$i