
    `Kh                        d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZmZmZmZmZmZ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  erddl!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) n
dxZ&xZ'xZ"Z)dZ$ G d de      Z* G d de      Z+ G d de      Z, G d de      Z- G d de      Z.er	ee
e/      Z0neZ0edge1f   Z2 G d dee0      Z3 G d de      Z4 G d de      Z5y)     N)ABCabstractmethod)Sized)
BaseCookieMorsel)TYPE_CHECKINGAny	AwaitableCallableDict	GeneratorIterableListOptionalSequenceTuple	TypedDictUnion)CIMultiDict)URL   )parse_set_cookie_headers)LooseCookies)Application)HTTPException)BaseRequestRequest)StreamResponsec                   \    e Zd ZddZdeddfdZedefd       ZddZ	e
dedd	fd
       Zy)AbstractRouterreturnNc                     d| _         y )NF_frozenselfs    i/var/www/CtrlAgent-Voice-Telephony-Channel/python-server/venv/lib/python3.12/site-packages/aiohttp/abc.py__init__zAbstractRouter.__init__(   s	        appc                      y)zPost init stage.

        Not an abstract method for sake of backward compatibility,
        but if the router wants to be aware of the application
        it can override this.
        N r&   r*   s     r'   	post_initzAbstractRouter.post_init+       r)   c                     | j                   S Nr#   r%   s    r'   frozenzAbstractRouter.frozen3   s    ||r)   c                     d| _         y)zFreeze router.TNr#   r%   s    r'   freezezAbstractRouter.freeze7   s	    r)   requestAbstractMatchInfoc                    K   yw)z#Return MATCH_INFO for given requestNr,   r&   r5   s     r'   resolvezAbstractRouter.resolve;           r!   N)__name__
__module____qualname__r(   r   r.   propertyboolr2   r4   r   r   r9   r,   r)   r'   r    r    '   s]    [ T     2W 21D 2 2r)   r    c                      e Zd ZdZeedeegee	   f   fd              Z
eedeegeee	      f   fd              Zeedee   fd              Zedeeef   fd       Zeedeedf   fd              Zed	edd
fd       Zedd       Zy
)r6   r,   r!   c                      y)zExecute matched request handlerNr,   r%   s    r'   handlerzAbstractMatchInfo.handlerD   r/   r)   c                      y)z*Expect handler for 100-continue processingNr,   r%   s    r'   expect_handlerz AbstractMatchInfo.expect_handlerI   r/   r)   c                      y)z<HTTPException instance raised on router's resolving, or NoneNr,   r%   s    r'   http_exceptionz AbstractMatchInfo.http_exceptionP   r/   r)   c                      y)z;Return a dict with additional info useful for introspectionNr,   r%   s    r'   get_infozAbstractMatchInfo.get_infoU   r/   r)   .c                      y)z\Stack of nested applications.

        Top level application is left-most element.

        Nr,   r%   s    r'   appszAbstractMatchInfo.appsY   r/   r)   r*   Nc                      y)z)Add application to the nested apps stack.Nr,   r-   s     r'   add_appzAbstractMatchInfo.add_appb   r/   r)   c                      y)zFreeze the match info.

        The method is called after route resolution.

        After the call .add_app() is forbidden.

        Nr,   r%   s    r'   r4   zAbstractMatchInfo.freezef   r/   r)   r<   )r=   r>   r?   	__slots__r@   r   r   r   r
   r   rD   r   rF   r   rH   r   strr	   rJ   r   r   rL   rN   r4   r,   r)   r'   r6   r6   @   s'   I.7)Y~-F"FG .  . 9	7)Yx'?@@	A9  9
 K 7 K  K J$sCx. J J eK,-    8; 84 8 8  r)   r6   c                   X    e Zd ZdZdeddfdZedefd       Zede	e
def   fd       Zy)AbstractViewzAbstract class based view.r5   r!   Nc                     || _         y r1   _requestr8   s     r'   r(   zAbstractView.__init__t   s	    r)   c                     | j                   S )zRequest instance.rU   r%   s    r'   r5   zAbstractView.requestw   s     }}r)   c                      y)zExecute the view handler.Nr,   r%   s    r'   	__await__zAbstractView.__await__|   r/   r)   )r=   r>   r?   __doc__r   r(   r@   r5   r   r   r	   r   rY   r,   r)   r'   rS   rS   q   sZ    $   D      (9S$%>? ( (r)   rS   c                   N    e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   y)	ResolveResulta  Resolve result.

    This is the result returned from an AbstractResolver's
    resolve method.

    :param hostname: The hostname that was provided.
    :param host: The IP address that was resolved.
    :param port: The port that was resolved.
    :param family: The address family that was resolved.
    :param proto: The protocol that was resolved.
    :param flags: The flags that were resolved.
    hostnamehostportfamilyprotoflagsN)r=   r>   r?   rZ   rQ   __annotations__intr,   r)   r'   r\   r\      s'     M
I
IKJJr)   r\   c                   x    e Zd ZdZedej                  fdededej                  de
e   fd       Zed
d	       Zy)AbstractResolverzAbstract DNS resolver.r   r^   r_   r`   r!   c                    K   yw)z$Return IP address for given hostnameNr,   )r&   r^   r_   r`   s       r'   r9   zAbstractResolver.resolve   r:   r;   Nc                    K   yw)zRelease resolverNr,   r%   s    r'   closezAbstractResolver.close   r:   r;   r<   )r=   r>   r?   rZ   r   socketAF_INETrQ   rd   AddressFamilyr   r\   r9   ri   r,   r)   r'   rf   rf      s_     %&v~~33"3060D0D3	m	3 3
  r)   rf   zMorsel[str]c                       e Zd ZdZdddeej                     ddfdZee	de
fd              Ze	ddee   ddfd	       Ze	d
eddfd       Ze	 e       fdededdfd       Zdee   deddfdZe	deddfd       Zy)AbstractCookieJarzAbstract Cookie Jar.N)loopro   r!   c                >    |xs t        j                         | _        y r1   )asyncioget_running_loop_loop)r&   ro   s     r'   r(   zAbstractCookieJar.__init__   s    7W557
r)   c                      y)z(Return True if cookies should be quoted.Nr,   r%   s    r'   quote_cookiezAbstractCookieJar.quote_cookie   r/   r)   	predicatec                      y)z,Clear all cookies if no predicate is passed.Nr,   )r&   rv   s     r'   clearzAbstractCookieJar.clear   r/   r)   domainc                      y)z0Clear all cookies for domain and all subdomains.Nr,   )r&   ry   s     r'   clear_domainzAbstractCookieJar.clear_domain   r/   r)   cookiesresponse_urlc                      y)zUpdate cookies.Nr,   )r&   r|   r}   s      r'   update_cookiesz AbstractCookieJar.update_cookies   r/   r)   headersc                 J    |r!t        |      x}r| j                  ||       yyy)z+Update cookies from raw Set-Cookie headers.N)r   r   )r&   r   r}   cookies_to_updates       r'   update_cookies_from_headersz-AbstractCookieJar.update_cookies_from_headers   s1     -Eg-NN)N 1<@ O7r)   request_urlzBaseCookie[str]c                      y)z6Return the jar's cookies filtered by their attributes.Nr,   )r&   r   s     r'   filter_cookiesz AbstractCookieJar.filter_cookies   r/   r)   r1   )r=   r>   r?   rZ   r   rq   AbstractEventLoopr(   r@   r   rA   ru   ClearCookiePredicaterx   rQ   r{   r   r   r   r   r   r   r,   r)   r'   rn   rn      s   FJ 8)B)B C 8t 8 7d 7  7 ;x(<= ; ; ; ?3 ?4 ? ? HK l # RV  A}A47A	A E# E2C E Er)   rn   c                       e Zd ZU dZdZeed<   dZeed<   dZe	e   ed<   e
deeeef   ddfd	       Ze
ddeddfd
       Ze
dd       Ze
	 ddede	e   ddfd       Ze
dd       Ze
deddddfd       ZddZy)AbstractStreamWriterzAbstract stream writer.r   buffer_sizeoutput_sizelengthchunkr!   Nc                    K   yw)zWrite chunk into stream.Nr,   r&   r   s     r'   writezAbstractStreamWriter.write   r:   r;   c                    K   yw)zWrite last chunk.Nr,   r   s     r'   	write_eofzAbstractStreamWriter.write_eof   r:   r;   c                    K   yw)zFlush the write buffer.Nr,   r%   s    r'   drainzAbstractStreamWriter.drain   r:   r;   encodingstrategyc                      y)zEnable HTTP body compressionNr,   )r&   r   r   s      r'   enable_compressionz'AbstractStreamWriter.enable_compression   r/   r)   c                      y)zEnable HTTP chunked modeNr,   r%   s    r'   enable_chunkingz$AbstractStreamWriter.enable_chunking   r/   r)   status_liner   zCIMultiDict[str]c                    K   yw)zWrite HTTP headersNr,   )r&   r   r   s      r'   write_headersz"AbstractStreamWriter.write_headers   r:   r;   c                      y)zForce sending buffered headers if not already sent.

        Required only if write_headers() buffers headers instead of sending immediately.
        For backwards compatibility, this method does nothing by default.
        Nr,   r%   s    r'   send_headersz!AbstractStreamWriter.send_headers   r/   r)   )r)   r<   )deflateN)r=   r>   r?   rZ   r   rd   rc   r   r   r   r   r   bytes	bytearray
memoryviewr   r   r   rQ   r   r   r   r   r,   r)   r'   r   r      s   !KKFHSM'ui'C!D ' ' '  U  T     & & CG++3;C=+	+ +
 ' ' !!);!	! !
r)   r   c            	       t    e Zd ZdZdZdej                  deddfdZe	de
d	ed
eddfd       Zedefd       Zy)AbstractAccessLoggerzAbstract writer to access log.logger
log_formatr   r   r!   Nc                      || _         || _        y r1   r   )r&   r   r   s      r'   r(   zAbstractAccessLogger.__init__  s    $r)   r5   responsetimec                      y)zEmit log to logger.Nr,   )r&   r5   r   r   s       r'   logzAbstractAccessLogger.log  r/   r)   c                      y)zCheck if logger is enabled.Tr,   r%   s    r'   enabledzAbstractAccessLogger.enabled	  s     r)   )r=   r>   r?   rZ   rP   loggingLoggerrQ   r(   r   r   r   floatr   r@   rA   r   r,   r)   r'   r   r      st    ((I%w~~ %3 %4 % "; ". " "RV " "   r)   r   )6rq   r   rj   abcr   r   collections.abcr   http.cookiesr   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   	multidictr   yarlr   _cookie_helpersr   typedefsr   web_appr   web_exceptionsr   web_requestr   r   web_responser   r    r6   rS   r\   rf   rQ   IterableBaserA   r   rn   r   r   r,   r)   r'   <module>r      s       # ! +     "  5 "$-1,;??K?'?K.M2S 22. .b(3 ( I ,s  F3K(LL   56  E|  EF(3 (V3 r)   