
    de                        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 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)eree	e*                  Z+neZ+edge,f         Z- G d dee+          Z. G d de          Z/ G d de          Z0dS )    N)ABCabstractmethod)Sized)
BaseCookieMorsel)
TYPE_CHECKINGAny	AwaitableCallableDict	GeneratorIterableListOptionalTuple)CIMultiDict)URL   )get_running_loop)LooseCookies)Application)HTTPException)BaseRequestRequest)StreamResponsec                   j    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dS )AbstractRouterreturnNc                     d| _         d S )NF_frozenselfs    +lib/python3.11/site-packages/aiohttp/abc.py__init__zAbstractRouter.__init__$   s        appc                     dS )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.frozen/   s
    |r&   c                     d| _         dS )zFreeze router.TNr    r"   s    r$   freezezAbstractRouter.freeze3   s    r&   requestAbstractMatchInfoc                 
   K   dS )z#Return MATCH_INFO for given requestNr)   r#   r2   s     r$   resolvezAbstractRouter.resolve7   
        r&   r   N)__name__
__module____qualname__r%   r   r+   propertyboolr/   r1   r   r   r6   r)   r&   r$   r   r   #   s           [ T         X    2W 21D 2 2 2 ^2 2 2r&   r   c                      e 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d	S )r3   r   c                     dS )zExecute matched request handlerNr)   r"   s    r$   handlerzAbstractMatchInfo.handler=   r,   r&   c                     dS )z*Expect handler for 100-continue processingNr)   r"   s    r$   expect_handlerz AbstractMatchInfo.expect_handlerB   r,   r&   c                     dS )z<HTTPException instance raised on router's resolving, or NoneNr)   r"   s    r$   http_exceptionz AbstractMatchInfo.http_exceptionI   r,   r&   c                     dS )z;Return a dict with additional info useful for introspectionNr)   r"   s    r$   get_infozAbstractMatchInfo.get_infoN   r,   r&   .c                     dS )z\Stack of nested applications.

        Top level application is left-most element.

        Nr)   r"   s    r$   appszAbstractMatchInfo.appsR   r,   r&   r'   Nc                     dS )z)Add application to the nested apps stack.Nr)   r*   s     r$   add_appzAbstractMatchInfo.add_app[   r,   r&   c                     dS )zFreeze the match info.

        The method is called after route resolution.

        After the call .add_app() is forbidden.

        Nr)   r"   s    r$   r1   zAbstractMatchInfo.freeze_   r,   r&   r8   )r9   r:   r;   r<   r   r   r   r
   r   r@   r   rB   r   rD   r   strr	   rF   r   r   rH   rJ   r1   r)   r&   r$   r3   r3   <   s       .7)Y~-F"FG . . . ^ X. 9	7)Yx'?@@	A9 9 9 ^ X9
 K 7 K K K ^ XK J$sCx. J J J ^J eK,-    ^ X 8; 84 8 8 8 ^8    ^  r&   r3   c                   l    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dS )AbstractViewzAbstract class based view.r2   r   Nc                     || _         d S r.   _requestr5   s     r$   r%   zAbstractView.__init__m   s    r&   c                     | j         S )zRequest instance.rP   r"   s    r$   r2   zAbstractView.requestp   s     }r&   c                     dS )zExecute the view handler.Nr)   r"   s    r$   	__await__zAbstractView.__await__u   r,   r&   )r9   r:   r;   __doc__r   r%   r<   r2   r   r   r	   r   rT   r)   r&   r$   rN   rN   j   s        $$   D             X (9S$%>? ( ( ( ^( ( (r&   rN   c                   n    e Zd ZdZededededeeee	f                  fd            Z
ed	d            ZdS )
AbstractResolverzAbstract DNS resolver.hostportfamilyr   c                 
   K   dS )z$Return IP address for given hostnameNr)   )r#   rX   rY   rZ   s       r$   r6   zAbstractResolver.resolve}   r7   r&   Nc                 
   K   dS )zRelease resolverNr)   r"   s    r$   closezAbstractResolver.close   r7   r&   r8   )r9   r:   r;   rU   r   rL   intr   r   r	   r6   r]   r)   r&   r$   rW   rW   z   s          3# 3S 3# 3$tCQTH~BV 3 3 3 ^3    ^  r&   rW   zMorsel[str]c                       e Zd ZdZdddeej                 dd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ededdfd            ZdS )AbstractCookieJarzAbstract Cookie Jar.N)loopra   r   c                .    t          |          | _        d S r.   )r   _loop)r#   ra   s     r$   r%   zAbstractCookieJar.__init__   s    %d++


r&   	predicatec                     dS )z,Clear all cookies if no predicate is passed.Nr)   )r#   rd   s     r$   clearzAbstractCookieJar.clear   r,   r&   domainc                     dS )z0Clear all cookies for domain and all subdomains.Nr)   )r#   rg   s     r$   clear_domainzAbstractCookieJar.clear_domain   r,   r&   cookiesresponse_urlc                     dS )zUpdate cookies.Nr)   )r#   rj   rk   s      r$   update_cookiesz AbstractCookieJar.update_cookies   r,   r&   request_urlzBaseCookie[str]c                     dS )z6Return the jar's cookies filtered by their attributes.Nr)   )r#   rn   s     r$   filter_cookiesz AbstractCookieJar.filter_cookies   r,   r&   r.   )r9   r:   r;   rU   r   asyncioAbstractEventLoopr%   r   ClearCookiePredicaterf   rL   ri   r   r   rm   rp   r)   r&   r$   r`   r`      s3       FJ , , ,)B C ,t , , , , ; ;x(<= ; ; ; ; ^; ?3 ?4 ? ? ? ^? HK  l # RV    ^ E# E2C E E E ^E E Er&   r`   c                       e Zd ZU dZdZdZdZee         e	d<   e
deddfd            Ze
ddeddfd	            Ze
dd
            Ze
ddeddfd            Ze
dd            Ze
deddddfd            ZdS )AbstractStreamWriterzAbstract stream writer.r   lengthchunkr   Nc                 
   K   dS )zWrite chunk into stream.Nr)   r#   rw   s     r$   writezAbstractStreamWriter.write   r7   r&   r&   c                 
   K   dS )zWrite last chunk.Nr)   ry   s     r$   	write_eofzAbstractStreamWriter.write_eof   r7   r&   c                 
   K   dS )zFlush the write buffer.Nr)   r"   s    r$   drainzAbstractStreamWriter.drain   r7   r&   deflateencodingc                     dS )zEnable HTTP body compressionNr)   )r#   r   s     r$   enable_compressionz'AbstractStreamWriter.enable_compression   r,   r&   c                     dS )zEnable HTTP chunked modeNr)   r"   s    r$   enable_chunkingz$AbstractStreamWriter.enable_chunking   r,   r&   status_lineheaderszCIMultiDict[str]c                 
   K   dS )zWrite HTTP headersNr)   )r#   r   r   s      r$   write_headersz"AbstractStreamWriter.write_headers   r7   r&   )r&   r8   )r   )r9   r:   r;   rU   buffer_sizeoutput_sizerv   r   r^   __annotations__r   bytesrz   r|   r~   rL   r   r   r   r)   r&   r$   ru   ru      sD        !!KKFHSM' '4 ' ' ' ^'    U  T       ^  & & & ^& + +3 +t + + + ^+ ' ' ' ^' !!);!	! ! ! ^! ! !r&   ru   c            	       X    e 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dS )AbstractAccessLoggerzAbstract writer to access log.logger
log_formatr   Nc                 "    || _         || _        d S r.   )r   r   )r#   r   r   s      r$   r%   zAbstractAccessLogger.__init__   s    $r&   r2   responsetimec                     dS )zEmit log to logger.Nr)   )r#   r2   r   r   s       r$   logzAbstractAccessLogger.log   r,   r&   )r9   r:   r;   rU   loggingLoggerrL   r%   r   r   r   floatr   r)   r&   r$   r   r      s        ((%w~ %3 %4 % % % % "; ". " "RV " " " ^" " "r&   r   )1rq   r   abcr   r   collections.abcr   http.cookiesr   r   typingr   r	   r
   r   r   r   r   r   r   r   	multidictr   yarlr   helpersr   typedefsr   web_appr   web_exceptionsr   web_requestr   r   web_responser   r   r3   rN   rW   rL   IterableBaser=   rs   r`   ru   r   r)   r&   r$   <module>r      s     # # # # # # # # ! ! ! ! ! ! + + + + + + + +                        " ! ! ! ! !       % % % % % % " " " " " " $$$$$$------11111111,,,,,,,;??K?'?K.M2 2 2 2 2S 2 2 22+ + + + + + + +\( ( ( ( (3 ( ( ( 	 	 	 	 	s 	 	 	  F3K(LLL   56 E E E E E| E E E.! ! ! ! !3 ! ! !D	" 	" 	" 	" 	"3 	" 	" 	" 	" 	"r&   