U
    ;g                     @   s  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 d dlmZ d dlmZ dd	lmZ erd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)G dd deZ*erNee
e+  Z,neZ,edge-f Z.G dd dee,Z/G dd deZ0G dd deZ1dS )    N)ABCabstractmethod)Sized)
BaseCookieMorsel)TYPE_CHECKINGAny	AwaitableCallableDict	GeneratorIterableListOptionalTuple	TypedDict)CIMultiDict)URL   )LooseCookies)Application)HTTPException)BaseRequestRequest)StreamResponsec                   @   s^   e Zd ZddddZeddddZeeddd	Zddd
dZ	e
eddddZdS )AbstractRouterNreturnc                 C   s
   d| _ d S )NFZ_frozenself r!   K/opt/bot/vods_filmes/script/venv/lib/python3.8/site-packages/aiohttp/abc.py__init__%   s    zAbstractRouter.__init__appr   c                 C   s   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(   s    zAbstractRouter.post_initc                 C   s   | j S Nr   r   r!   r!   r"   frozen0   s    zAbstractRouter.frozenc                 C   s
   d| _ dS )zFreeze router.TNr   r   r!   r!   r"   freeze4   s    zAbstractRouter.freezeAbstractMatchInforequestr   c                    s   dS )z#Return MATCH_INFO for given requestNr!   r    r-   r!   r!   r"   resolve8   s    zAbstractRouter.resolve)__name__
__module____qualname__r#   r   r'   propertyboolr)   r*   r   r   r/   r!   r!   r!   r"   r   $   s   r   c                   @   s   e Zd Zeeeegee f dddZ	eeeegee
e  f dddZeee
e dddZeeeef ddd	Zeeeed
f dddZeeddddZeddddZdS )r+   r   c                 C   s   dS )zExecute matched request handlerNr!   r   r!   r!   r"   handler>   s    zAbstractMatchInfo.handlerc                 C   s   dS )z*Expect handler for 100-continue processingNr!   r   r!   r!   r"   expect_handlerC   s    z AbstractMatchInfo.expect_handlerc                 C   s   dS )z<HTTPException instance raised on router's resolving, or NoneNr!   r   r!   r!   r"   http_exceptionJ   s    z AbstractMatchInfo.http_exceptionc                 C   s   dS )z;Return a dict with additional info useful for introspectionNr!   r   r!   r!   r"   get_infoO   s    zAbstractMatchInfo.get_info.c                 C   s   dS )z\Stack of nested applications.

        Top level application is left-most element.

        Nr!   r   r!   r!   r"   appsS   s    zAbstractMatchInfo.appsNr$   c                 C   s   dS )z)Add application to the nested apps stack.Nr!   r&   r!   r!   r"   add_app\   s    zAbstractMatchInfo.add_appc                 C   s   dS )zFreeze the match info.

        The method is called after route resolution.

        After the call .add_app() is forbidden.

        Nr!   r   r!   r!   r"   r*   `   s    zAbstractMatchInfo.freeze)r0   r1   r2   r3   r   r
   r   r	   r   r5   r   r6   r   r7   r   strr   r8   r   r   r9   r:   r*   r!   r!   r!   r"   r+   =   s&    r+   c                   @   sN   e Zd ZdZeddddZeedddZee	e
def dd	d
ZdS )AbstractViewzAbstract class based view.Nr,   c                 C   s
   || _ d S r(   _requestr.   r!   r!   r"   r#   n   s    zAbstractView.__init__r   c                 C   s   | j S )zRequest instance.r=   r   r!   r!   r"   r-   q   s    zAbstractView.requestc                 C   s   dS )zExecute the view handler.Nr!   r   r!   r!   r"   	__await__v   s    zAbstractView.__await__)r0   r1   r2   __doc__r   r#   r3   r-   r   r   r   r   r?   r!   r!   r!   r"   r<   k   s   r<   c                   @   sB   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< dS )	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)r0   r1   r2   r@   r;   __annotations__intr!   r!   r!   r"   rA   {   s   
rA   c                   @   sH   e Zd ZdZedejfeeej	e
e dddZedddd	ZdS )
AbstractResolverzAbstract DNS resolver.r   )rC   rD   rE   r   c                    s   dS )z$Return IP address for given hostnameNr!   )r    rC   rD   rE   r!   r!   r"   r/      s    zAbstractResolver.resolveNr   c                    s   dS )zRelease resolverNr!   r   r!   r!   r"   close   s    zAbstractResolver.close)r0   r1   r2   r@   r   socketAF_INETr;   rI   AddressFamilyr   rA   r/   rK   r!   r!   r!   r"   rJ      s      rJ   zMorsel[str]c                   @   s   e Zd ZdZddeej ddddZedee	 dddd	Z
eedd
ddZee feeddddZeeddddZdS )AbstractCookieJarzAbstract Cookie Jar.N)loop)rP   r   c                C   s   |p
t  | _d S r(   )asyncioZget_running_loop_loop)r    rP   r!   r!   r"   r#      s    zAbstractCookieJar.__init__)	predicater   c                 C   s   dS )z,Clear all cookies if no predicate is passed.Nr!   )r    rS   r!   r!   r"   clear   s    zAbstractCookieJar.clear)domainr   c                 C   s   dS )z0Clear all cookies for domain and all subdomains.Nr!   )r    rU   r!   r!   r"   clear_domain   s    zAbstractCookieJar.clear_domain)cookiesresponse_urlr   c                 C   s   dS )zUpdate cookies.Nr!   )r    rW   rX   r!   r!   r"   update_cookies   s    z AbstractCookieJar.update_cookieszBaseCookie[str])request_urlr   c                 C   s   dS )z6Return the jar's cookies filtered by their attributes.Nr!   )r    rZ   r!   r!   r"   filter_cookies   s    z AbstractCookieJar.filter_cookies)N)r0   r1   r2   r@   r   rQ   ZAbstractEventLoopr#   r   ClearCookiePredicaterT   r;   rV   r   r   rY   r[   r!   r!   r!   r"   rO      s   rO   c                   @   s   e Zd ZU dZdZdZdZee e	d< e
eddddZe
deddd	d
Ze
ddddZe
deddddZe
ddddZe
edddddZdS )AbstractStreamWriterzAbstract stream writer.r   lengthN)chunkr   c                    s   dS )zWrite chunk into stream.Nr!   r    r_   r!   r!   r"   write   s    zAbstractStreamWriter.write    c                    s   dS )zWrite last chunk.Nr!   r`   r!   r!   r"   	write_eof   s    zAbstractStreamWriter.write_eofr   c                    s   dS )zFlush the write buffer.Nr!   r   r!   r!   r"   drain   s    zAbstractStreamWriter.draindeflate)encodingr   c                 C   s   dS )zEnable HTTP body compressionNr!   )r    rf   r!   r!   r"   enable_compression   s    z'AbstractStreamWriter.enable_compressionc                 C   s   dS )zEnable HTTP chunked modeNr!   r   r!   r!   r"   enable_chunking   s    z$AbstractStreamWriter.enable_chunkingzCIMultiDict[str])status_lineheadersr   c                    s   dS )zWrite HTTP headersNr!   )r    ri   rj   r!   r!   r"   write_headers   s    z"AbstractStreamWriter.write_headers)rb   )re   )r0   r1   r2   r@   buffer_sizeZoutput_sizer^   r   rI   rH   r   bytesra   rc   rd   r;   rg   rh   rk   r!   r!   r!   r"   r]      s&   
 r]   c                   @   s<   e Zd ZdZejeddddZee	e
eddddZdS )	AbstractAccessLoggerzAbstract writer to access log.N)logger
log_formatr   c                 C   s   || _ || _d S r(   )ro   rp   )r    ro   rp   r!   r!   r"   r#      s    zAbstractAccessLogger.__init__)r-   responsetimer   c                 C   s   dS )zEmit log to logger.Nr!   )r    r-   rq   rr   r!   r!   r"   log   s    zAbstractAccessLogger.log)r0   r1   r2   r@   loggingLoggerr;   r#   r   r   r   floatrs   r!   r!   r!   r"   rn      s   rn   )2rQ   rt   rL   abcr   r   collections.abcr   http.cookiesr   r   typingr   r   r	   r
   r   r   r   r   r   r   r   Z	multidictr   Zyarlr   Ztypedefsr   Zweb_appr   Zweb_exceptionsr   Zweb_requestr   r   Zweb_responser   r   r+   r<   rA   rJ   r;   ZIterableBaser4   r\   rO   r]   rn   r!   r!   r!   r"   <module>   s8   4."