
    *Gjp                        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rd	dlm Z  d	dl!m"Z" d	dl#m$Z$m%Z% d	dl&m'Z' n
exZ$xZ%xZ Z'eZ" G d de          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         Z0 G d dee.          Z1 G d de          Z2 G 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                   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    S/home/rurouni/.hermes/hermes-agent/venv/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.freeze*   s    r&   requestAbstractMatchInfoc                 
   K   dS )z#Return MATCH_INFO for given requestNr)   r#   r2   s     r$   resolvezAbstractRouter.resolve.   
        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dZeedeegee	         f         fd                        Z
eedeegee	dz           f         fd                        Zeededz  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)   r   c                     dS )zExecute matched request handlerNr)   r"   s    r$   handlerzAbstractMatchInfo.handler7   r,   r&   Nc                     dS )z*Expect handler for 100-continue processingNr)   r"   s    r$   expect_handlerz AbstractMatchInfo.expect_handler<   r,   r&   c                     dS )z<HTTPException instance raised on router's resolving, or NoneNr)   r"   s    r$   http_exceptionz AbstractMatchInfo.http_exceptionC   r,   r&   c                     dS )z;Return a dict with additional info useful for introspectionNr)   r"   s    r$   get_infozAbstractMatchInfo.get_infoH   r,   r&   .c                     dS )z\Stack of nested applications.

        Top level application is left-most element.

        Nr)   r"   s    r$   appszAbstractMatchInfo.appsL   r,   r&   r'   c                     dS )z)Add application to the nested apps stack.Nr)   r*   s     r$   add_appzAbstractMatchInfo.add_appU   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.freezeY   r,   r&   r8   )r9   r:   r;   	__slots__r<   r   r   r   r   r   r@   rB   r   rD   dictstrr   rF   tupler   rH   rJ   r1   r)   r&   r$   r3   r3   3   s       I.7)Y~-F"FG . . . ^ X. 9	7)Y~'<==	>9 9 9 ^ X9
 K 4 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	d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__g   s    r&   c                     | j         S )zRequest instance.rS   r"   s    r$   r2   zAbstractView.requestj   s     }r&   c                     dS )zExecute the view handler.Nr)   r"   s    r$   	__await__zAbstractView.__await__o   r,   r&   )r9   r:   r;   __doc__r   r%   r<   r2   r   r   r   rW   r)   r&   r$   rQ   rQ   d   s        $$   D             X (9T4%?@ ( ( ( ^( ( (r&   rQ   c                   P    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)r9   r:   r;   rX   rN   __annotations__intr)   r&   r$   rZ   rZ   t   sR           MMM
III
IIIKKKJJJJJJJJr&   rZ   c                   x    e Zd ZdZedej        fdededej	        de
e         fd            Zed
d	            ZdS )AbstractResolverzAbstract DNS resolver.r   r\   r]   r^   r   c                 
   K   dS )z$Return IP address for given hostnameNr)   )r#   r\   r]   r^   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;   rX   r   socketAF_INETrN   rb   AddressFamilylistrZ   r6   rg   r)   r&   r$   rd   rd      s          %&v~3 33"3060D3	m	3 3 3 ^3
    ^  r&   rd   zMorsel[str]c                      e Zd ZdZdddej        dz  ddfdZeede	fd                        Z
eede	fd                        Zeedeeeef         ef         fd	                        Zeedeeeef                  fd
                        Zeddedz  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dee         deddfdZededdfd            ZdS )AbstractCookieJarzAbstract Cookie Jar.N)looprn   r   c                :    |pt          j                    | _        d S r.   )asyncioget_running_loop_loop)r#   rn   s     r$   r%   zAbstractCookieJar.__init__   s    7W577


r&   c                     dS )z5Return True if cookies can be used with IP addresses.Nr)   r"   s    r$   unsafezAbstractCookieJar.unsafe   r,   r&   c                     dS )z(Return True if cookies should be quoted.Nr)   r"   s    r$   quote_cookiezAbstractCookieJar.quote_cookie   r,   r&   c                     dS )z&Return the cookies stored in this jar.Nr)   r"   s    r$   cookieszAbstractCookieJar.cookies   r,   r&   c                     dS )z0Return the host-only cookies stored in this jar.Nr)   r"   s    r$   host_only_cookiesz#AbstractCookieJar.host_only_cookies   r,   r&   	predicatec                     dS )z,Clear all cookies if no predicate is passed.Nr)   )r#   r{   s     r$   clearzAbstractCookieJar.clear   r,   r&   domainc                     dS )z0Clear all cookies for domain and all subdomains.Nr)   )r#   r~   s     r$   clear_domainzAbstractCookieJar.clear_domain   r,   r&   rx   response_urlc                     dS )zUpdate cookies.Nr)   )r#   rx   r   s      r$   update_cookiesz AbstractCookieJar.update_cookies   r,   r&   headersc                 `    |r)t          |          x}r|                     ||           dS dS dS )z+Update cookies from raw Set-Cookie headers.N)r   r   )r#   r   r   cookies_to_updates       r$   update_cookies_from_headersz-AbstractCookieJar.update_cookies_from_headers   sY      	A-Eg-N-NN) 	A 1<@@@@@	A 	A 	A 	Ar&   request_urlzBaseCookie[str]c                     dS )z6Return the jar's cookies filtered by their attributes.Nr)   )r#   r   s     r$   filter_cookiesz AbstractCookieJar.filter_cookies   r,   r&   r.   )r9   r:   r;   rX   rp   AbstractEventLoopr%   r<   r   r=   rt   rv   r   rO   rN   r   rx   	frozensetrz   ClearCookiePredicater}   r   r   r   r   r	   r   r   r)   r&   r$   rm   rm      sS       CG 8 8 8 9D @ 8D 8 8 8 8 D D D D ^ XD 7d 7 7 7 ^ X7 5)%S/<*GH 5 5 5 ^ X5 ?9U38_#= ? ? ? ^ X? ; ;3d: ;d ; ; ; ^; ?3 ?4 ? ? ? ^? HK  l # RV    ^A}A47A	A A A A E# E2C E E E ^E E Er&   rm   c                      e Zd ZU dZdZeed<   dZeed<   dZedz  ed<   e	de
ez  ez  ddfd	            Ze	dde
ddfd            Ze	dd            Ze		 ddededz  ddfd            Ze	dd            Ze	deddddfd            ZddZdS )AbstractStreamWriterzAbstract stream writer.r   buffer_sizeoutput_sizeNlengthchunkr   c                 
   K   dS )zWrite chunk into stream.Nr)   r#   r   s     r$   writezAbstractStreamWriter.write   r7   r&   r&   c                 
   K   dS )zWrite last chunk.Nr)   r   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encodingstrategyc                     dS )zEnable HTTP body compressionNr)   )r#   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_liner   zCIMultiDict[str]c                 
   K   dS )zWrite HTTP headersNr)   )r#   r   r   s      r$   write_headersz"AbstractStreamWriter.write_headers   r7   r&   c                     dS )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"   s    r$   send_headersz!AbstractStreamWriter.send_headers   r,   r&   )r&   r8   )r   N)r9   r:   r;   rX   r   rb   ra   r   r   r   bytes	bytearray
memoryviewr   r   r   rN   r   r   r   r   r)   r&   r$   r   r      s        !!KKFC$J'!2Z!? 'D ' ' ' ^'    U  T       ^  & & & ^& @D+ ++36:+	+ + + ^+
 ' ' ' ^' !!);!	! ! ! ^!
     r&   r   c            	       x    e Zd 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edefd            ZdS )AbstractAccessLoggerzAbstract writer to access log.logger
log_formatr   r   r   Nc                 "    || _         || _        d S 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&   c                     dS )zCheck if logger is enabled.Tr)   r"   s    r$   enabledzAbstractAccessLogger.enabled  s	     tr&   )r9   r:   r;   rX   rL   loggingLoggerrN   r%   r   r   r   floatr   r<   r=   r   r)   r&   r$   r   r      s        (((I%w~ %3 %4 % % % % "; ". " "RV " " " ^"     X  r&   r   )4rp   r   rh   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   r3   rQ   rZ   rd   rN   IterableBaser=   r   rm   r   r   r)   r&   r$   <module>r      s
      # # # # # # # # U U U U U U U U U U U U U U U U 9 9 9 9 9 9 9 9 9 9 " " " " " " 0 0 0 0 0 0 0 0 0 0 ! ! ! ! ! !       5 5 5 5 5 5 " " " " " " $$$$$$------11111111,,,,,,,;>>K>'>K.M2 2 2 2 2S 2 2 22. . . . . . . .b( ( ( ( (3 ( ( (     I   ,    s     F3K(LLL   56 /E /E /E /E /E| /E /E /Ed( ( ( ( (3 ( ( (V    3     r&   