o
    +if
                     @   s   d Z ddlZddl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 dd	lmZmZmZ dd
lmZ dZG dd dZdS )zLow level HTTP server.    N)Any	AwaitableCallableDictListOptional   )AbstractStreamWriter)get_running_loop)RawRequestMessage)StreamReader)RequestHandler_RequestFactory_RequestHandler)BaseRequest)Serverc                   @   s   e Zd Zdddddedee dedeej de	d	dfd
dZ
ed	ee fddZdedejd	dfddZ	d#dedee d	dfddZdededededdd	efddZd$ddZd#dee d	dfdd Zd	efd!d"ZdS )%r   NF)request_factoryhandler_cancellationloophandlerr   r   r   kwargsreturnc                K   s8   t || _i | _|| _d| _|| _|p| j| _|| _d S )Nr   )	r
   _loop_connections_kwargsrequests_countrequest_handler_make_requestr   r   )selfr   r   r   r   r    r   K/var/www/html/corbot_env/lib/python3.10/site-packages/aiohttp/web_server.py__init__   s   
	
zServer.__init__c                 C   s   t | j S N)listr   keys)r   r   r   r    connections!   s   zServer.connections	transportc                 C   s   || j |< d S r"   r   )r   r   r&   r   r   r    connection_made%   s   zServer.connection_madeexcc                 C   s   || j v r| j |= d S d S r"   r'   )r   r   r)   r   r   r    connection_lost*   s   
zServer.connection_lostmessagepayloadprotocolwritertaskzasyncio.Task[None]c                 C   s   t |||||| jS r"   )r   r   )r   r+   r,   r-   r.   r/   r   r   r    r   0   s   zServer._make_requestc                 C   s   | j D ]}|  qd S r"   )r   close)r   connr   r   r    pre_shutdown:   s   

zServer.pre_shutdowntimeoutc                    s4    fdd| j D }tj| I d H  | j   d S )Nc                 3   s    | ]}|  V  qd S r"   )shutdown).0r1   r3   r   r    	<genexpr>?   s    z"Server.shutdown.<locals>.<genexpr>)r   asynciogatherclear)r   r3   corosr   r6   r    r4   >   s   zServer.shutdownc                 C   sX   zt | fd| ji| jW S  ty+   dd | j D }t | fd| ji| Y S w )Nr   c                 S   s   i | ]\}}|d v r||qS ))debugaccess_log_classr   )r5   kvr   r   r    
<dictcomp>H   s
    z#Server.__call__.<locals>.<dictcomp>)r   r   r   	TypeErroritems)r   r   r   r   r    __call__C   s   zServer.__call__r"   )r   N)__name__
__module____qualname__r   r   r   boolr8   AbstractEventLoopr   r!   propertyr   r   r%   	Transportr(   BaseExceptionr*   r   r   r	   r   r   r2   floatr4   rC   r   r   r   r    r      sd    





r   )__doc__r8   typingr   r   r   r   r   r   abcr	   helpersr
   http_parserr   streamsr   web_protocolr   r   r   web_requestr   __all__r   r   r   r   r    <module>   s     