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_runner.cpython-310.pyc
o

���g
.�@sXddlZddlZddlZddlZddlmZmZddlmZm	Z	m
Z
mZmZddl
mZddlmZddlmZddlmZerGdd	lmZnzdd	lmZWneyZeZYnwd
ZGdd�de�Zd dd�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de"�Z#Gdd�de"�Z$dS)!�N)�ABC�abstractmethod)�
TYPE_CHECKING�Any�List�Optional�Set)�URL�)�PathLike)�Application)�Server)�
SSLContext)	�BaseSite�TCPSite�UnixSite�
NamedPipeSite�SockSite�
BaseRunner�	AppRunner�ServerRunner�GracefulExitc@seZdZdZdS)rr
N)�__name__�
__module__�__qualname__�code�rr�=/usr/local/lib/python3.10/dist-packages/aiohttp/web_runner.pyr#sr�returncCst���N)rrrrr�_raise_graceful_exit'sr c@sjeZdZdZdddd�ddded	eed
eddf
dd
�Ze	e
defdd���Ze
ddd��Z
ddd�ZdS)r)�_runner�_ssl_context�_backlog�_server�N@N���shutdown_timeout�ssl_context�backlog�runnerrr(r)r*rcCsP|jdur	td��|dkrd}tj|tdd�||_||_||_||_d|_	dS)Nz(Call runner.setup() before making a siter%z,shutdown_timeout should be set on BaseRunner�)�
stacklevel)
�server�RuntimeError�warnings�warn�DeprecationWarning�_shutdown_timeoutr!r"r#r$)�selfr+r(r)r*�msgrrr�__init__.s

zBaseSite.__init__cCsdSrr�r4rrr�nameAsz
BaseSite.namec�s�|j�|�dSr)r!�	_reg_siter7rrr�startFs�zBaseSite.startc�s2�|j�|�|jdur|j��|j�|�dSr)r!�_check_siter$�close�_unreg_siter7rrr�stopJs
�

z
BaseSite.stop�rN)rrr�	__slots__�floatrr�intr6�propertyr�strr8r:r>rrrrr+s,�����
�rcs�eZdZdZ		ddddddd�dddeed	eed
edeeded
ee	dee	ddf�fdd�Z
edefdd��Zd�fdd�Z
�ZS)r)�_host�_port�_reuse_address�_reuse_portNr%r&)r(r)r*�
reuse_address�
reuse_portr+r�host�portr(r)r*rIrJrc	sFt�j||||d�||_|dur|jrdnd}||_||_||_dS)Nr'i� i�)�superr6rEr"rFrGrH)	r4r+rKrLr(r)r*rIrJ��	__class__rrr6Us�
zTCPSite.__init__cCs4|jrdnd}|jsdn|j}ttj|||jd��S)N�https�httpz0.0.0.0��schemerKrL)r"rErDr	�buildrF)r4rSrKrrrr8nszTCPSite.namec	�s^�t���IdHt��}|jj}|dusJ�|j||j|j|j	|j
|j|jd�IdH|_
dS)N)�sslr*rIrJ)rMr:�asyncio�get_event_loopr!r.�
create_serverrErFr"r#rGrHr$�r4�loopr.rNrrr:ts��z
TCPSite.start)NNr?)rrrr@rrDrBrAr�boolr6rCr8r:�
__classcell__rrrNrrRs@��������	�
��rc
sheZdZdZdddd�ddded	ed
eededdf�fd
d�Z	e
defdd��Zd�fdd�Z
�ZS)r��_pathr%Nr&r'r+r�pathr(r)r*rcst�j||||d�||_dS)Nr')rMr6r^)r4r+r_r(r)r*rNrrr6�s	�
zUnixSite.__init__cCs |jrdnd}|�d|j�d�S)NrPrQ�://unix:�:)r"r^)r4rSrrrr8�sz
UnixSite.namec��R�t���IdHt��}|jj}|dusJ�|j||j|j|j	d�IdH|_
dS)N)rUr*)rMr:rVrWr!r.�create_unix_serverr^r"r#r$rYrNrrr:�s��zUnixSite.startr?)rrrr@rrArrrBr6rCrDr8r:r\rrrNrr�s*�������rc	sXeZdZdZdd�dddededd	f�fd
d�Zedefdd
��Zd�fdd�Z	�Z
S)rr]r%�r(r+rr_r(rNcs6t��}t|tj�std��t�j||d�||_dS)Nz9Named Pipes only available in proactor loop under windowsrd)rVrW�
isinstance�ProactorEventLoopr/rMr6r^)r4r+r_r(rZrNrrr6�s��
zNamedPipeSite.__init__cC�|jSrr]r7rrrr8��zNamedPipeSite.namec�sP�t���IdHt��}|jj}|dusJ�|�||j�IdH}|d|_dS�Nr)	rMr:rVrWr!r.�start_serving_piper^r$)r4rZr.r$rNrrr:�s�
�zNamedPipeSite.startr?)rrrr@rDrAr6rCr8r:r\rrrNrr�s�����
rc
sjeZdZdZdddd�dddejd	ed
eededdf�fd
d�Z	e
defdd��Zd�fdd�Z
�ZS)r)�_sock�_namer%Nr&r'r+r�sockr(r)r*rc
s�t�j||||d�||_|jrdnd}ttd�r*|jtjkr*|�d|���d�}n|��dd�\}}	t	t
j|||	d��}||_dS)	Nr'rPrQ�AF_UNIXr`rar,rR)
rMr6rkr"�hasattr�socket�familyrn�getsocknamerDr	rTrl)
r4r+rmr(r)r*rSr8rKrLrNrrr6�s	�
zSockSite.__init__cCrgr)rlr7rrrr8�rhz
SockSite.namec�rb)N)rmrUr*)rMr:rVrWr!r.rXrkr"r#r$rYrNrrr:�s��zSockSite.startr?)rrrr@rprArrrBr6rCrDr8r:r\rrrNrr�s*�������rc	@s�eZdZdZddd�dedededd	fd
d�Zede	e
fdd
��Zedeefdd��Z
edeefdd��Zd#dd�Zed#dd��Zd#dd�Zede
fdd��Zed#dd��Zdedd	fdd�Zdedd	fdd �Zdedd	fd!d"�Zd	S)$r��_handle_signals�_kwargsr$�_sitesr3Fr%)�handle_signalsr(rwr(�kwargsrNcKs"||_||_d|_g|_||_dSrrs)r4rwr(rxrrrr6�s

zBaseRunner.__init__cCrgr)r$r7rrrr.rhzBaseRunner.servercCsHg}|jD]}|j}|dur!|j}|dur!|D]	}|�|���qq|Sr)rvr$�sockets�appendrr)r4�ret�siter.ryrmrrr�	addressess
�zBaseRunner.addressescCs
t|j�Sr)�setrvr7rrr�sitess
zBaseRunner.sitesc�sX�t��}|jr"z|�tjt�|�tjt�Wn	ty!Ynw|�	�IdH|_
dSr)rVrWrt�add_signal_handler�signal�SIGINTr �SIGTERM�NotImplementedError�_make_serverr$�r4rZrrr�setups��zBaseRunner.setupc�s�dS)z8Call any shutdown hooks to help server close gracefully.Nrr7rrr�shutdown#szBaseRunner.shutdownc�s��t|j�D]	}|��IdHq|jr1t�d�IdH|j��|��IdH|j�|j�IdH|�	�IdHd|_|j
r\t��}z|�t
j�|�t
j�WdSty[YdSwdSri)�listrvr>r$rV�sleep�pre_shutdownr�r3�_cleanup_serverrt�get_running_loop�remove_signal_handlerr�r�r�r�)r4r|rZrrr�cleanup's&�
��zBaseRunner.cleanupc���dSrrr7rrrr�B��zBaseRunner._make_serverc�r�rrr7rrrr�Fr�zBaseRunner._cleanup_serverr|cCs.||jvrtd|�d|����|j�|�dS)N�Site z! is already registered in runner )rvr/rz�r4r|rrrr9J�
zBaseRunner._reg_sitecCs"||jvrtd|�d|����dS�Nr�z is not registered in runner )rvr/r�rrrr;Os
�zBaseRunner._check_sitecCs.||jvrtd|�d|����|j�|�dSr�)rvr/�remover�rrrr=Sr�zBaseRunner._unreg_siter?)rrrr@r[rArr6rCrr
r.rr}rrrr�rr�r�r�r�r9r;r=rrrrr�s<����
�



rc	s^eZdZdZdZdd�dedededd	f�fd
d�Zddd
�Z	defdd�Z
ddd�Z�ZS)rzLow-level web server runner��_web_serverF�rw�
web_serverrwrxrNcs t�jdd|i|��||_dS)Nrwr)rMr6r�)r4r�rwrxrNrrr6^s
zServerRunner.__init__c�r�rrr7rrrr�d��zServerRunner.shutdownc�s�|jSrr�r7rrrr�gs�zServerRunner._make_serverc�r�rrr7rrrr�jr�zServerRunner._cleanup_serverr?)
rrr�__doc__r@r
r[rr6r�r�r�r\rrrNrrYs �����
rc	speZdZdZdZdd�dedededd	f�fd
d�Ze	defdd
��Z
ddd�Zdefdd�Z
ddd�Z�ZS)rzWeb Application runner��_appFr��apprwrxrNcs8t�jdd|i|��t|t�std�|���||_dS)Nrwz?The first argument should be web.Application instance, got {!r}r)rMr6rer�	TypeError�formatr�)r4r�rwrxrNrrr6ss
�
zAppRunner.__init__cCrgrr�r7rrrr�~rhz
AppRunner.appc���|j��IdHdSr)r�r�r7rrrr����zAppRunner.shutdownc�sT�t��}|j�|�|jj��|j��IdH|j��|jjdd|i|j��S)NrZr)	rVrWr��	_set_loop�
on_startup�freeze�startup�
_make_handlerrur�rrrr��s�
zAppRunner._make_serverc�r�r)r�r�r7rrrr��r�zAppRunner._cleanup_serverr?)rrrr�r@rr[rr6rCr�r�r
r�r�r\rrrNrrns$�����
	rr?)%rVr�rpr0�abcrr�typingrrrrr�yarlr	�typedefsr�web_apprr�r
rUr�ImportError�object�__all__�
SystemExitrr rrrrrrrrrrrr�<module>s8�
'2&)g