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: //home/arjun/projects/env/lib/python3.10/site-packages/aiohttp/__pycache__/web_app.cpython-310.pyc
o

+we�G�@sjddlZddlZddlZddlmZmZddlmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZddlmZddlmZddlmZddl 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.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;ddl<m=Z=ddl>m?Z?ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGdZHer�eedge
dfZIeee9e;ge
dfZJee/ZKeeee/eLfZMedZNneZIeZJeZKeeZMeZNed�ZOed�ZPGdd�deeeQe'efef�ZRGdd�deS�ZTe�r)eeeRge	dfZUneZUGdd�deU�ZVdS) �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�CleanupErrorr4�_T�_Ucs�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$ed�deed-ddeefd.d/��Z%edeed-e&deee&ffd0d/��Z%ed�de
d-edefd1d/��Z%d�dee
eefd-edefd2d/�Z%e'dejfd3d4��Z(deejddfd5d6�Z)e'defd7d8��Z*d�d9d:�Z+e'defd;d<��Z,d�d=d>�Z-e'defd?d@��Z.d�dBdC�Z/dDe
dAdde0fdEdF�Z1dGe2ge0fdAdde0fdHdI�Z3dJe
dAdde0fdKdL�Z4dMe
e5de6e7fdNdO�Z8e'de9fdPdQ��Z:e'de;fdRdS��Z<e'de;fdTdU��Z=e'de;fdVdW��Z>e'd�dYdZ��Z?e'de	fd[d\��Z@e'deAfd]d^��ZBdeCd_�deejd`eeDdaedeEfdbdc�ZFdeCd_�deejd`eeDdaedeEfddde�ZGd�dfdg�ZHd�dhdi�ZId�djdk�ZJeKfdleLdmeMdneNdoeOdpdqdreeKdeKfdsdt�ZPde#eQeeffdudv�ZRdweKdeSfdxdy�ZTd�dzd{�ZUde
fd|d}�ZVdefd~d�ZW�ZXS)�r4)�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.)r8�router�middlewares�handler_args�client_max_size�loop�debugr8rKrLrMrNrOrP�returncCs|durt�}ntjdtdd�t|t�sJ|��|dur%tjdtdd�|dur1tjdtdd�||_||_||_||_	||_
t|�|_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 deprecatedF)r3�warnings�warn�DeprecationWarning�
isinstancerr9r:r;r<r8rr=r>r?r@rArBrCrrDrErFrG�CleanupContextrI�appendrH)�selfr8rKrLrMrNrOrPrJrJ�H/home/arjun/projects/env/lib/python3.10/site-packages/aiohttp/web_app.py�__init__isD���





zApplication.__init__�clscCstjd�|j�tdd�dS)Nz8Inheritance class {} from web.Application is discouraged�rS)rUrV�format�__name__rW)r^rJrJr\�__init_subclass__�s
�zApplication.__init_subclass__�name�valcs2||jvrtjd�|�tdd�t��||�dS)Nz:Setting custom web.Application.{} attribute is discouragedrRrS)�ATTRSrUrVr`rW�super�__setattr__)r[rcrd��	__class__rJr\rg�s
�zApplication.__setattr__�othercCs||uS�NrJ)r[rjrJrJr\�__eq__�szApplication.__eq__�keycC�dSrkrJ�r[rmrJrJr\�__getitem__��zApplication.__getitem__cCrnrkrJrorJrJr\rp�rqcCs
|j|Srk)r@rorJrJr\rp��
cCs|jr
tjdtdd�dSdS)Nz=Changing state of started or joined application is deprecatedr_rS)rArUrVrW�r[rJrJr\�
_check_frozen�s
��zApplication._check_frozen�valuecCrnrkrJ�r[rmrurJrJr\�__setitem__�rqzApplication.__setitem__cCrnrkrJrvrJrJr\rw�rqcCs0|��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-configrR)�categoryrT)rtrXr rUrVr%r@rvrJrJr\rw�s
�cCs|��|j|=dSrk)rtr@rorJrJr\�__delitem__�szApplication.__delitem__cC�
t|j�Srk)�lenr@rsrJrJr\�__len__�rrzApplication.__len__cCrzrk)�iterr@rsrJrJr\�__iter__�rrzApplication.__iter__�defaultcCrnrkrJ�r[rmrrJrJr\�get�rqzApplication.getcCrnrkrJr�rJrJr\r��rqcCrnrkrJr�rJrJr\r��rqcCs|j�||�Srk)r@r�r�rJrJr\r��scCstjdtdd�ttj|j�S)Nzloop property is deprecatedrRrS)rUrVrWr�asyncio�AbstractEventLoopr;rsrJrJr\rO�szApplication.loopcCs`|durt��}|jdur|j|urtd��||_|jdur#|��|_|jD]}|�|�q&dS)Nz8web.Application instance initialized with different loop.)r��get_event_loopr;�RuntimeErrorr9�	get_debugrC�	_set_loop)r[rO�subapprJrJr\r�s�


�zApplication._set_loopcC�|jSrk)rBrsrJrJr\�
pre_frozen�zApplication.pre_frozencCs�|jrdSd|_|j��|j��|j��|j��|j��|j��|j��t	|�
��|_|jr7dnd|_
|jD]
}|��|j
pH|j
|_
q=dS)NTF)rBr=�freezer:rDrIrErFrG�tuple�_prepare_middlewarer>rLr?rC�
pre_freeze�r[r�rJrJr\r�s 







�zApplication.pre_freezecCr�rk)rArsrJrJr\�frozen1r�zApplication.frozencCs0|jrdS|��d|_|jD]}|��qdS�NT)rAr�rCr�r�rJrJr\r�5s

�zApplication.freezecCstjdtdd�|jS)Nzdebug property is deprecatedrRrS)rUrVrWr9rsrJrJr\rP>szApplication.debugr�cs4dtddf��fdd�}|d�|d�|d�dS)N�signamerQcs2t�|��d��fdd�}t�|�}|�|�dS)N�appr4rQc�s�����IdHdSrk)�send)r�)r��subsigrJr\�handlerGs�zEApplication._reg_subapp_signals.<locals>.reg_handler.<locals>.handler)r�r4rQN)�getattrrZ)r�r��appsigr�)r�r\�reg_handlerDs

z4Application._reg_subapp_signals.<locals>.reg_handler�
on_startup�on_shutdown�
on_cleanup)�str)r[r�r�rJr�r\�_reg_subapp_signalsCs	zApplication._reg_subapp_signals�prefixcCs@t|t�s	td��|�d�}|std��tt||�}|�||�S)NzPrefix must be str�/zPrefix cannot be empty)rXr��	TypeError�rstrip�
ValueErrorrr2�_add_subapp)r[r�r��factoryrJrJr\�
add_subappQs

zApplication.add_subapp�resource_factorycCsf|jrtd��|jrtd��|�}|j�|�|�|�|j�|�|��|jdur1|�	|j�|S)Nz0Cannot add sub application to frozen applicationzCannot add frozen application)
r�r�rK�register_resourcer�rCrZr�r;r�)r[r�r��resourcerJrJr\r�Zs

zApplication._add_subapp�domaincCsDt|t�s	td��d|vrt|�}nt|�}tt||�}|�||�S)NzDomain must be str�*)rXr�r�r0r/rr1r�)r[r�r��ruler�rJrJr\�
add_domainjs

zApplication.add_domain�routescCs|j�|�Srk)rK�
add_routes)r[r�rJrJr\r�tszApplication.add_routescCr�rk)rDrsrJrJr\�on_response_preparewr�zApplication.on_response_preparecCr�rk)rErsrJrJr\r�{r�zApplication.on_startupcCr�rk)rFrsrJrJr\r�r�zApplication.on_shutdowncCr�rk)rGrsrJrJr\r��r�zApplication.on_cleanuprYcCr�rk)rIrsrJrJr\�cleanup_ctx�r�zApplication.cleanup_ctxcCr�rk)r:rsrJrJr\rK�r�zApplication.routercCr�rk)r=rsrJrJr\rL�r�zApplication.middlewares�rO�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 {}rPr�)�request_factoryrO)
�
issubclassrr�r`r�r�r9r<�itemsr,�_handle�
_make_requestr;)r[rOr�r��k�vrJrJr\�
_make_handler�s(
�


���zApplication._make_handlercKs&tjdtdd�|jd||d�|��S)NzFApplication.make_handler(...) is deprecated, use AppRunner API insteadrRrSr�rJ)rUrVrWr�)r[rOr�r�rJrJr\�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�rsrJrJr\�startup���zApplication.startupc�r�)zMCauses on_shutdown signal

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

        Should be called after shutdown()
        N)r�r�r�rIrGrsrJrJr\�cleanup�s�zApplication.cleanup�message�payload�protocol�writer�taskzasyncio.Task[None]�_clsc	Cs|||||||j|jd�S)N)rN)r;rH)r[r�r�r�r�r�r�rJrJr\r��s	�zApplication._make_requestccs`�t|j�D] }t|dd�dkr|dfVqtjd�|�tdd�|dfVqt|�dfVdS)N�__middleware_version__rTz1old-style middleware "{!r}" deprecated, see #2252rRrSF)�reversedr=r�rUrVr`rWr')r[�mrJrJr\r��s��zApplication._prepare_middleware�requestc�s�t��}|��}|j�|�IdH}|r t|t�s td�|���|�	|�|�
�d}||_|j�
tj�}|rG|�|�IdH}|j��IdH|dur|j}|jrx|jddd�D]}|jD]\}	}
|
rntt|	|d�|�}q^|	||�IdH}q^qY||�IdH}|S)Nz9match_info should be AbstractMatchInfo instance, not {!r}���)r�)r�r�r�r:�resolverXrr�r`�add_appr��_match_info�headersr�r�EXPECT�expect_handlerr��drainr�r?�appsr>rr)r[r�rOrP�
match_info�resp�expectr�r�r��	new_stylerJrJr\r��s>�
�
��zApplication._handlecCs|S)zgunicorn compatibilityrJrsrJrJr\�__call__#rqzApplication.__call__cCsdt|�d�d�S)Nz<Application 0x�x�>)�idrsrJrJr\�__repr__'szApplication.__repr__cCsdSr�rJrsrJrJr\�__bool__*szApplication.__bool__�rQN).rk)r�r4rQN)rQrY)rQr4)Yra�
__module__�__qualname__�	frozensetrer"�logging�Loggerrr3r
r$r
r�r�intr�r�r]rrbrrg�object�boolrlrr r6rprrtrwryr|rr~r�r7�propertyrOr�r�r�r�r�rPr�r-r�rr�r�r+rr.r��_RespPrepareSignalr��
_AppSignalr�r�r�r�rK�_MiddlewaresrLr&rr,r�r�r�r�r�r)r!r#r(rr�rr�r*r�r�r�r��
__classcell__rJrJrhr\r4Qs��������	�

�7
""$$

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


�������
�
&c@s"eZdZedeefdd��ZdS)r5rQcCsttt|jd�S)Nr)rr�
BaseException�argsrsrJrJr\�
exceptions/szCleanupError.exceptionsN)rar�r�r�rr�r�rJrJrJr\r5.sr5csBeZdZd
�fdd�Zdeddfdd�Zdeddfdd	�Z�ZS)rYrQNcst���g|_dSrk)rfr]�_exitsrsrhrJr\r];s

zCleanupContext.__init__r�c�s6�|D]}||���}|��IdH|j�|�qdSrk)�	__aiter__�	__anext__r�rZ)r[r��cb�itrJrJr\rE?s��zCleanupContext._on_startupc�s��g}t|j�D]5}z	|��IdHWntyYqty2}z|�|�WYd}~qd}~ww|�t|�d���q|rOt|�dkrJ|d�td|��dS)Nz has more than one 'yield'rrz Multiple errors on cleanup stage)	r�r�r��StopAsyncIteration�	ExceptionrZr�r{r5)r[r��errorsr��excrJrJr\rGEs"���
�zCleanupContext._on_cleanupr�)rar�r�r]r4rErGr�rJrJrhr\rY:srY)Wr�r�rU�	functoolsrr�typingrrrrrr	r
rrr
rrrrrrrrr�	aiosignalr�
frozenlistr�r�abcrrrr�helpersrr �http_parserr!�logr"�streamsr#�typedefsr$�web_exceptionsr%�web_logr&�web_middlewaresr'�web_protocolr(�web_requestr)�web_responser*�web_routedefr+�
web_serverr,�web_urldispatcherr-r.r/r0r1r2r3�__all__r�r�r�r��_MiddlewaresHandlers�_Subappsr6r7r�r4r�r5�_CleanupContextBaserYrJrJrJr\�<module>s\T$

$`