a
    ~gp                     @   s  d dl Z 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 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rZeee-  Z.neZ.edge/f Z0G dd dee.Z1G dd deZ2G dd deZ3dS )    N)ABCabstractmethod)Sized)
BaseCookieMorsel)TYPE_CHECKINGAny	AwaitableCallableDict	GeneratorIterableListOptionalTuple	TypedDictUnion)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_frozenself r#   P/var/www/html/emsaiapi.evdpl.com/venv/lib/python3.9/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$   frozen2   s    zAbstractRouter.frozenc                 C   s
   d| _ dS )zFreeze router.TNr   r!   r#   r#   r$   freeze6   s    zAbstractRouter.freezeAbstractMatchInforequestr   c                    s   dS )z#Return MATCH_INFO for given requestNr#   r"   r/   r#   r#   r$   resolve:   s    zAbstractRouter.resolve)__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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#   r   c                 C   s   dS )zExecute matched request handlerNr#   r!   r#   r#   r$   handlerC   s    zAbstractMatchInfo.handlerc                 C   s   dS )z*Expect handler for 100-continue processingNr#   r!   r#   r#   r$   expect_handlerH   s    z AbstractMatchInfo.expect_handlerc                 C   s   dS )z<HTTPException instance raised on router's resolving, or NoneNr#   r!   r#   r#   r$   http_exceptionO   s    z AbstractMatchInfo.http_exceptionc                 C   s   dS )z;Return a dict with additional info useful for introspectionNr#   r!   r#   r#   r$   get_infoT   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$   appsX   s    zAbstractMatchInfo.appsNr&   c                 C   s   dS )z)Add application to the nested apps stack.Nr#   r(   r#   r#   r$   add_appa   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,   e   s    zAbstractMatchInfo.freeze)r2   r3   r4   	__slots__r5   r   r
   r   r	   r   r7   r   r8   r   r9   r   strr   r:   r   r   r;   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*   _requestr0   r#   r#   r$   r%   s   s    zAbstractView.__init__r   c                 C   s   | j S )zRequest instance.r@   r!   r#   r#   r$   r/   v   s    zAbstractView.requestc                 C   s   dS )zExecute the view handler.Nr#   r!   r#   r#   r$   	__await__{   s    zAbstractView.__await__)r2   r3   r4   __doc__r   r%   r5   r/   r   r   r   r   rB   r#   r#   r#   r$   r?   p   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)r2   r3   r4   rC   r>   __annotations__intr#   r#   r#   r$   rD      s   
rD   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   )rF   rG   rH   r   c                    s   dS )z$Return IP address for given hostnameNr#   )r"   rF   rG   rH   r#   r#   r$   r1      s    zAbstractResolver.resolveNr   c                    s   dS )zRelease resolverNr#   r!   r#   r#   r$   close   s    zAbstractResolver.close)r2   r3   r4   rC   r   socketAF_INETr>   rL   AddressFamilyr   rD   r1   rN   r#   r#   r#   r$   rM      s   rM   zMorsel[str]c                   @   s   e Zd ZdZddeej ddddZee	e
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)rS   r   c                C   s   |p
t  | _d S r*   )asyncioget_running_loop_loop)r"   rS   r#   r#   r$   r%      s    zAbstractCookieJar.__init__r   c                 C   s   dS )z(Return True if cookies should be quoted.Nr#   r!   r#   r#   r$   quote_cookie   s    zAbstractCookieJar.quote_cookie)	predicater   c                 C   s   dS )z,Clear all cookies if no predicate is passed.Nr#   )r"   rX   r#   r#   r$   clear   s    zAbstractCookieJar.clear)domainr   c                 C   s   dS )z0Clear all cookies for domain and all subdomains.Nr#   )r"   rZ   r#   r#   r$   clear_domain   s    zAbstractCookieJar.clear_domain)cookiesresponse_urlr   c                 C   s   dS )zUpdate cookies.Nr#   )r"   r\   r]   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"   r_   r#   r#   r$   filter_cookies   s    z AbstractCookieJar.filter_cookies)N)r2   r3   r4   rC   r   rT   AbstractEventLoopr%   r5   r   r6   rW   ClearCookiePredicaterY   r>   r[   r   r   r^   r`   r#   r#   r#   r$   rR      s   rR   c                   @   s   e Zd ZU dZdZeed< dZeed< dZe	e ed< e
eeeef dddd	Ze
deddddZe
ddddZe
dejfe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   buffer_sizeoutput_sizelengthN)chunkr   c                    s   dS )zWrite chunk into stream.Nr#   r"   rg   r#   r#   r$   write   s    zAbstractStreamWriter.write    c                    s   dS )zWrite last chunk.Nr#   rh   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)encodingstrategyr   c                 C   s   dS )zEnable HTTP body compressionNr#   )r"   rn   ro   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"   rr   rs   r#   r#   r$   write_headers   s    z"AbstractStreamWriter.write_headers)rj   )r2   r3   r4   rC   rd   rL   rK   re   rf   r   r   r   bytes	bytearray
memoryviewri   rk   rl   zlibZ_DEFAULT_STRATEGYr>   rp   rq   rt   r#   r#   r#   r$   rc      s,   
rc   c                   @   sR   e Zd ZdZdZejeddddZe	e
eedddd	Zeed
ddZdS )AbstractAccessLoggerzAbstract writer to access log.logger
log_formatN)r|   r}   r   c                 C   s   || _ || _d S r*   r{   )r"   r|   r}   r#   r#   r$   r%      s    zAbstractAccessLogger.__init__)r/   responsetimer   c                 C   s   dS )zEmit log to logger.Nr#   )r"   r/   r~   r   r#   r#   r$   log   s    zAbstractAccessLogger.logr   c                 C   s   dS )zCheck if logger is enabled.Tr#   r!   r#   r#   r$   enabled   s    zAbstractAccessLogger.enabled)r2   r3   r4   rC   r=   loggingLoggerr>   r%   r   r   r   floatr   r5   r6   r   r#   r#   r#   r$   rz      s   rz   )4rT   r   rO   rx   abcr   r   collections.abcr   http.cookiesr   r   typingr   r   r	   r
   r   r   r   r   r   r   r   r   	multidictr   yarlr   typedefsr   Zweb_appr   Zweb_exceptionsr   Zweb_requestr   r   Zweb_responser   r   r-   r?   rD   rM   r>   ZIterableBaser6   rb   rR   rc   rz   r#   r#   r#   r$   <module>   s:   81$