o
    m=8jp                     @   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mZm	Z	m
Z
mZmZ d dlmZmZmZ d dlmZ d dl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rsd	dlm Z  d	dl!m"Z" d	dl#m$Z$m%Z% d	dl&m'Z' n
e Z$ Z% Z Z'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+G dd deZ,ere
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)	AwaitableCallable	GeneratorIterableSequenceSized)
BaseCookieMorselSimpleCookie)MappingProxyType)TYPE_CHECKINGAny	TypedDict)CIMultiDict)URL   )parse_set_cookie_headers)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_frozenself r!   R/home/nk/hobo-godmode/plappi-mvp/.venv/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"   freeze*   s   
zAbstractRouter.freezerequestAbstractMatchInfoc                       dS )z#Return MATCH_INFO for given requestNr!   r    r.   r!   r!   r"   resolve.       zAbstractRouter.resolver   N)__name__
__module____qualname__r#   r   r(   propertyboolr,   r-   r   r   r2   r!   r!   r!   r"   r      s    

r   c                   @   s   e Zd ZdZeedeegee	 f fddZ
eedeegee	dB  f fddZeededB 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!   r   c                 C   r&   )zExecute matched request handlerNr!   r   r!   r!   r"   handler7   r)   zAbstractMatchInfo.handlerNc                 C   r&   )z*Expect handler for 100-continue processingNr!   r   r!   r!   r"   expect_handler<   r)   z AbstractMatchInfo.expect_handlerc                 C   r&   )z<HTTPException instance raised on router's resolving, or NoneNr!   r   r!   r!   r"   http_exceptionC   r)   z AbstractMatchInfo.http_exceptionc                 C   r&   )z;Return a dict with additional info useful for introspectionNr!   r   r!   r!   r"   get_infoH   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"   appsL   r)   zAbstractMatchInfo.appsr%   c                 C   r&   )z)Add application to the nested apps stack.Nr!   r'   r!   r!   r"   add_appU   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-   Y   r)   zAbstractMatchInfo.freezer4   )r5   r6   r7   	__slots__r8   r   r   r   r   r   r:   r;   r   r<   dictstrr   r=   tupler   r>   r?   r-   r!   r!   r!   r"   r/   3   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	dde
f fd	d
ZdS )AbstractViewzAbstract class based view.r.   r   Nc                 C   s
   || _ d S r+   _requestr1   r!   r!   r"   r#   g   r$   zAbstractView.__init__c                 C   r*   )zRequest instance.rE   r   r!   r!   r"   r.   j   s   zAbstractView.requestc                 C   r&   )zExecute the view handler.Nr!   r   r!   r!   r"   	__await__o   r)   zAbstractView.__await__)r5   r6   r7   __doc__r   r#   r8   r.   r   r   r   rG   r!   r!   r!   r"   rD   d   s    rD   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)r5   r6   r7   rH   rB   __annotations__intr!   r!   r!   r"   rI   t   s   
 rI   c                   @   sJ   e Zd ZdZedejfdededej	de
e fddZedd
dZd	S )AbstractResolverzAbstract DNS resolver.r   rK   rL   rM   r   c                    r0   )z$Return IP address for given hostnameNr!   )r    rK   rL   rM   r!   r!   r"   r2      r3   zAbstractResolver.resolveNc                    r0   )zRelease resolverNr!   r   r!   r!   r"   close   r3   zAbstractResolver.closer4   )r5   r6   r7   rH   r   socketAF_INETrB   rQ   AddressFamilylistrI   r2   rS   r!   r!   r!   r"   rR      s    rR   zMorsel[str]c                   @   s$  e Zd ZdZdddejdB ddfddZeede	fdd	Z
eede	fd
dZeedeeeef ef fddZeedeeeef  fddZed!dedB 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de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)looprY   r   c                C   s   |pt  | _d S r+   )asyncioget_running_loop_loop)r    rY   r!   r!   r"   r#      s   zAbstractCookieJar.__init__c                 C   r&   )z5Return True if cookies can be used with IP addresses.Nr!   r   r!   r!   r"   unsafe   r)   zAbstractCookieJar.unsafec                 C   r&   )z(Return True if cookies should be quoted.Nr!   r   r!   r!   r"   quote_cookie   r)   zAbstractCookieJar.quote_cookiec                 C   r&   )z&Return the cookies stored in this jar.Nr!   r   r!   r!   r"   cookies   r)   zAbstractCookieJar.cookiesc                 C   r&   )z0Return the host-only cookies stored in this jar.Nr!   r   r!   r!   r"   host_only_cookies   r)   z#AbstractCookieJar.host_only_cookies	predicatec                 C   r&   )z,Clear all cookies if no predicate is passed.Nr!   )r    ra   r!   r!   r"   clear   r)   zAbstractCookieJar.cleardomainc                 C   r&   )z0Clear all cookies for domain and all subdomains.Nr!   )r    rc   r!   r!   r"   clear_domain   r)   zAbstractCookieJar.clear_domainr_   response_urlc                 C   r&   )zUpdate cookies.Nr!   )r    r_   re   r!   r!   r"   update_cookies   r)   z AbstractCookieJar.update_cookiesheadersc                 C   s(   |rt | }r| || dS dS dS )z+Update cookies from raw Set-Cookie headers.N)r   rf   )r    rg   re   cookies_to_updater!   r!   r"   update_cookies_from_headers   s   z-AbstractCookieJar.update_cookies_from_headersrequest_urlzBaseCookie[str]c                 C   r&   )z6Return the jar's cookies filtered by their attributes.Nr!   )r    rj   r!   r!   r"   filter_cookies   r)   z AbstractCookieJar.filter_cookiesr+   )r5   r6   r7   rH   rZ   AbstractEventLoopr#   r8   r   r9   r]   r^   r   rC   rB   r   r_   	frozensetr`   ClearCookiePredicaterb   rd   r   r   rf   r   ri   rk   r!   r!   r!   r"   rX      s<    "
rX   c                   @   s   e Zd ZU dZdZeed< dZeed< dZedB ed< e	de
eB eB 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edB ddfddZe	dddZe	deddddfddZdddZdS )!AbstractStreamWriterzAbstract stream writer.r   buffer_sizeoutput_sizeNlengthchunkr   c                    r0   )zWrite chunk into stream.Nr!   r    rs   r!   r!   r"   write   r3   zAbstractStreamWriter.write    c                    r0   )zWrite last chunk.Nr!   rt   r!   r!   r"   	write_eof   r3   zAbstractStreamWriter.write_eofc                    r0   )zFlush the write buffer.Nr!   r   r!   r!   r"   drain   r3   zAbstractStreamWriter.draindeflateencodingstrategyc                 C   r&   )zEnable HTTP body compressionNr!   )r    rz   r{   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_linerg   zCIMultiDict[str]c                    r0   )zWrite HTTP headersNr!   )r    r~   rg   r!   r!   r"   write_headers   r3   z"AbstractStreamWriter.write_headersc                 C   r&   )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   r!   r!   r"   send_headers   r)   z!AbstractStreamWriter.send_headers)rv   r4   )ry   N)r5   r6   r7   rH   rp   rQ   rP   rq   rr   r   bytes	bytearray
memoryviewru   rw   rx   rB   r|   r}   r   r   r!   r!   r!   r"   ro      s>   
 ro   c                	   @   s\   e Zd 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edefddZdS )AbstractAccessLoggerzAbstract writer to access log.logger
log_formatr   r   r   Nc                 C   s   || _ || _d S r+   r   )r    r   r   r!   r!   r"   r#     s   
zAbstractAccessLogger.__init__r.   responsetimec                 C   r&   )zEmit log to logger.Nr!   )r    r.   r   r   r!   r!   r"   log  r)   zAbstractAccessLogger.logc                 C   r&   )zCheck if logger is enabled.Tr!   r   r!   r!   r"   enabled  s   zAbstractAccessLogger.enabled)r5   r6   r7   rH   r@   loggingLoggerrB   r#   r   r   r   floatr   r8   r9   r   r!   r!   r!   r"   r      s    r   )4rZ   r   rT   abcr   r   collections.abcr   r   r   r   r   r	   http.cookiesr
   r   r   typesr   typingr   r   r   	multidictr   yarlr   _cookie_helpersr   typedefsr   web_appr   web_exceptionsr   web_requestr   r   web_responser   r   r/   rD   rI   rR   rB   IterableBaser9   rn   rX   ro   r   r!   r!   r!   r"   <module>   s>     12+