o
    Zh|                     @   s  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rkddlmZ ddlm Z  ddl!m"Z"m#Z# ddl$m%Z% n
d Z" Z# ZZ%dZ G dd deZ&G dd deZ'G dd deZ(G dd deZ)eree	e*  Z+neZ+edge,f Z-G dd dee+Z.G dd deZ/G d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                   @   sZ   e Zd ZdddZdeddfddZedefdd	Zdd
dZ	e
deddfddZdS )AbstractRouterreturnNc                 C   s
   d| _ d S )NFZ_frozenself r    B/var/www/html/lang_env/lib/python3.10/site-packages/aiohttp/abc.py__init__$      
zAbstractRouter.__init__appc                 C      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.
        Nr    r   r$   r    r    r!   	post_init'       zAbstractRouter.post_initc                 C      | j S Nr   r   r    r    r!   frozen/   s   zAbstractRouter.frozenc                 C   s
   d| _ dS )zFreeze router.TNr   r   r    r    r!   freeze3   s   
zAbstractRouter.freezerequestAbstractMatchInfoc                       dS )z#Return MATCH_INFO for given requestNr    r   r-   r    r    r!   resolve7       zAbstractRouter.resolver   N)__name__
__module____qualname__r"   r   r'   propertyboolr+   r,   r   r   r1   r    r    r    r!   r   #   s    

r   c                   @   s   e Zd Zeedeegee f fddZ	eedeegee
e  f fddZeede
e fddZedeeef fdd	Zeedeed
f fddZededdfddZedddZdS )r.   r   c                 C   r%   )zExecute matched request handlerNr    r   r    r    r!   handler=   r(   zAbstractMatchInfo.handlerc                 C   r%   )z*Expect handler for 100-continue processingNr    r   r    r    r!   expect_handlerB   r(   z AbstractMatchInfo.expect_handlerc                 C   r%   )z<HTTPException instance raised on router's resolving, or NoneNr    r   r    r    r!   http_exceptionI   r(   z AbstractMatchInfo.http_exceptionc                 C   r%   )z;Return a dict with additional info useful for introspectionNr    r   r    r    r!   get_infoN   r(   zAbstractMatchInfo.get_info.c                 C   r%   )z\Stack of nested applications.

        Top level application is left-most element.

        Nr    r   r    r    r!   appsR   r(   zAbstractMatchInfo.appsr$   Nc                 C   r%   )z)Add application to the nested apps stack.Nr    r&   r    r    r!   add_app[   r(   zAbstractMatchInfo.add_appc                 C   r%   )zFreeze the match info.

        The method is called after route resolution.

        After the call .add_app() is forbidden.

        Nr    r   r    r    r!   r,   _   r(   zAbstractMatchInfo.freezer3   )r4   r5   r6   r7   r   r
   r   r	   r   r9   r   r:   r   r;   r   strr   r<   r   r   r=   r>   r,   r    r    r    r!   r.   <   s*     r.   c                   @   sP   e Zd ZdZdeddfddZedefddZede	e
def fd	d
ZdS )AbstractViewzAbstract class based view.r-   r   Nc                 C   s
   || _ d S r*   _requestr0   r    r    r!   r"   m   r#   zAbstractView.__init__c                 C   r)   )zRequest instance.rA   r   r    r    r!   r-   p   s   zAbstractView.requestc                 C   r%   )zExecute the view handler.Nr    r   r    r    r!   	__await__u   r(   zAbstractView.__await__)r4   r5   r6   __doc__r   r"   r7   r-   r   r   r   r   rC   r    r    r    r!   r@   j   s    r@   c                   @   sH   e Zd ZdZededededeeee	f  fddZ
edd	d
ZdS )AbstractResolverzAbstract DNS resolver.hostportfamilyr   c                    r/   )z$Return IP address for given hostnameNr    )r   rF   rG   rH   r    r    r!   r1   }   r2   zAbstractResolver.resolveNc                    r/   )zRelease resolverNr    r   r    r    r!   close   r2   zAbstractResolver.closer3   )r4   r5   r6   rD   r   r?   intr   r   r   r1   rI   r    r    r    r!   rE   z   s    (rE   zMorsel[str]c                   @   s   e Zd ZdZdddeej ddfddZeddee	 ddfd	d
Z
ededdfddZee fdededdfddZededdfddZdS )AbstractCookieJarzAbstract Cookie Jar.N)looprL   r   c                C   s   t || _d S r*   )r   _loop)r   rL   r    r    r!   r"      s   zAbstractCookieJar.__init__	predicatec                 C   r%   )z,Clear all cookies if no predicate is passed.Nr    )r   rN   r    r    r!   clear   r(   zAbstractCookieJar.cleardomainc                 C   r%   )z0Clear all cookies for domain and all subdomains.Nr    )r   rP   r    r    r!   clear_domain   r(   zAbstractCookieJar.clear_domaincookiesresponse_urlc                 C   r%   )zUpdate cookies.Nr    )r   rR   rS   r    r    r!   update_cookies   r(   z AbstractCookieJar.update_cookiesrequest_urlzBaseCookie[str]c                 C   r%   )z6Return the jar's cookies filtered by their attributes.Nr    )r   rU   r    r    r!   filter_cookies   r(   z AbstractCookieJar.filter_cookiesr*   )r4   r5   r6   rD   r   asyncioAbstractEventLoopr"   r   ClearCookiePredicaterO   r?   rQ   r   r   rT   rV   r    r    r    r!   rK      s    rK   c                   @   s   e Zd ZU dZdZdZdZee e	d< e
deddfddZe
ddeddfd
dZe
dddZe
ddeddfddZe
dddZe
deddddfddZdS )AbstractStreamWriterzAbstract stream writer.r   lengthchunkr   Nc                    r/   )zWrite chunk into stream.Nr    r   r\   r    r    r!   write   r2   zAbstractStreamWriter.write    c                    r/   )zWrite last chunk.Nr    r]   r    r    r!   	write_eof   r2   zAbstractStreamWriter.write_eofc                    r/   )zFlush the write buffer.Nr    r   r    r    r!   drain   r2   zAbstractStreamWriter.draindeflateencodingc                 C   r%   )zEnable HTTP body compressionNr    )r   rc   r    r    r!   enable_compression   r(   z'AbstractStreamWriter.enable_compressionc                 C   r%   )zEnable HTTP chunked modeNr    r   r    r    r!   enable_chunking   r(   z$AbstractStreamWriter.enable_chunkingstatus_lineheaderszCIMultiDict[str]c                    r/   )zWrite HTTP headersNr    )r   rf   rg   r    r    r!   write_headers   r2   z"AbstractStreamWriter.write_headers)r_   r3   )rb   )r4   r5   r6   rD   buffer_sizeZoutput_sizer[   r   rJ   __annotations__r   bytesr^   r`   ra   r?   rd   re   rh   r    r    r    r!   rZ      s.   
 rZ   c                	   @   sF   e Zd ZdZdejdeddfddZede	d	e
d
eddfddZdS )AbstractAccessLoggerzAbstract writer to access log.logger
log_formatr   Nc                 C   s   || _ || _d S r*   )rm   rn   )r   rm   rn   r    r    r!   r"      s   
zAbstractAccessLogger.__init__r-   responsetimec                 C   r%   )zEmit log to logger.Nr    )r   r-   ro   rp   r    r    r!   log   r(   zAbstractAccessLogger.log)r4   r5   r6   rD   loggingLoggerr?   r"   r   r   r   floatrq   r    r    r    r!   rl      s
     rl   )1rW   rr   abcr   r   collections.abcr   http.cookiesr   r   typingr   r   r	   r
   r   r   r   r   r   r   Z	multidictr   Zyarlr   helpersr   Ztypedefsr   Zweb_appr   Zweb_exceptionsr   Zweb_requestr   r   Zweb_responser   r   r.   r@   rE   r?   ZIterableBaser8   rY   rK   rZ   rl   r    r    r    r!   <module>   s8    0."