
    *Gjb                         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mZmZ dd	lmZ d
Z G d d          ZdS )zLow level HTTP server.    N)Any	AwaitableCallableDictListOptional   )AbstractStreamWriter)RawRequestMessage)StreamReader)RequestHandler_RequestFactory_RequestHandler)BaseRequest)Serverc                       e Zd Zdddddededz  dedej        dz  ded	dfd
Z	e
d	ee         fd            Zdedej        d	dfdZ	 ddededz  d	dfdZdededededdd	efdZddZddedz  d	dfdZd	efdZdS )r   NF)request_factoryhandler_cancellationloophandlerr   r   r   kwargsreturnc                    |pt          j                    | _        i | _        || _        d| _        || _        |p| j        | _        || _	        d S )Nr   )
asyncioget_running_loop_loop_connections_kwargsrequests_countrequest_handler_make_requestr   r   )selfr   r   r   r   r   s         Z/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/aiohttp/web_server.py__init__zServer.__init__   sX     7W577
EG  &.D$2D$8!!!    c                 N    t          | j                                                  S N)listr   keys)r"   s    r#   connectionszServer.connections#   s    D%**,,---r%   	transportc                     || j         |<   d S r'   )r   )r"   r   r+   s      r#   connection_madezServer.connection_made'   s     &/'"""r%   excc                 ~      j         v r1j        r j                             fd           d S  j         = d S d S )Nc                 :    j                             d           S r'   )r   pop)fr   r"   s    r#   <lambda>z(Server.connection_lost.<locals>.<lambda>2   s    d/33GTBB r%   )r   _task_handleradd_done_callback)r"   r   r.   s   `` r#   connection_lostzServer.connection_lost,   sn     d'''$ /%77BBBBB     %g... ('r%   messagepayloadprotocolwritertaskzasyncio.Task[None]c                 4    t          |||||| j                  S r'   )r   r   )r"   r7   r8   r9   r:   r;   s         r#   r!   zServer._make_request7   s     7GXvtTZPPPr%   c                 B    | j         D ]}|                                 d S r'   )r   close)r"   conns     r#   pre_shutdownzServer.pre_shutdownA   s-    % 	 	DJJLLLL	 	r%   timeoutc                    K   fd| j         D             }t          j        |  d {V  | j                                          d S )Nc              3   B   K   | ]}|                               V  d S r'   )shutdown).0r?   rA   s     r#   	<genexpr>z"Server.shutdown.<locals>.<genexpr>F   s/      FFDw''FFFFFFr%   )r   r   gatherclear)r"   rA   coross    ` r#   rD   zServer.shutdownE   s]      FFFFD4EFFFne$$$$$$$$!!!!!r%   c                    	 t          | fd| j        i| j        S # t          $ r\ d | j                                        D             }t          | fd| j        i|}|j                            d| j                   |cY S w xY w)Nr   c                 "    i | ]\  }}|d v 	||S ))debugaccess_log_class )rE   kvs      r#   
<dictcomp>z#Server.__call__.<locals>.<dictcomp>O   s4       Aq555 1555r%   z~Failed to create request handler with custom kwargs %r, falling back to filtered kwargs. This may indicate a misconfiguration.)r   r   r   	TypeErroritemsloggerwarning)r"   r   r   s      r#   __call__zServer.__call__J   s    	!$HHTZH4<HHH 	 	 	  L..00  F
 %TEE
EfEEGN""$ 	   NNN	s    A#B Br'   )r   N)__name__
__module____qualname__r   r   boolr   AbstractEventLoopr   r$   propertyr(   r   r*   	Transportr-   BaseExceptionr6   r   r   r
   r   r!   r@   floatrD   rV   rN   r%   r#   r   r      s       
 37%*159 9 9 9 )4/	9
 #9 '$.9 9 
9 9 9 9& .T.1 . . . X./%/292C/	/ / / / DH	/ 	/%	/,9D,@	/		/ 	/ 	/ 	/Q"Q Q !	Q
 %Q #Q 
Q Q Q Q   " "edl "d " " " "
.      r%   r   )__doc__r   typingr   r   r   r   r   r   abcr
   http_parserr   streamsr   web_protocolr   r   r   web_requestr   __all__r   rN   r%   r#   <module>rh      s       A A A A A A A A A A A A A A A A % % % % % % * * * * * * ! ! ! ! ! ! J J J J J J J J J J $ $ $ $ $ $
L L L L L L L L L Lr%   