
    tni                     "   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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
dxZ&xZ'xZ"Z)d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/                  Z0neZ0edge1f         Z2 G d dee0          Z3 G d de          Z4 G d de          Z5dS )     N)ABCabstractmethod)Sized)
BaseCookieMorsel)TYPE_CHECKINGAny	AwaitableCallableDict	GeneratorIterableListOptionalSequenceTuple	TypedDictUnion)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    H/var/www/html/gpu-tools/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.frozen3   s
    |r)   c                     d| _         dS )zFreeze router.TNr#   r%   s    r'   freezezAbstractRouter.freeze7   s    r)   requestAbstractMatchInfoc                 
   K   dS )z#Return MATCH_INFO for given requestNr,   r&   r5   s     r'   resolvezAbstractRouter.resolve;   
        r)   r!   N)__name__
__module____qualname__r(   r   r.   propertyboolr2   r4   r   r   r9   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e	                  f         fd                        Zeedee         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 )r6   r,   r!   c                     dS )zExecute matched request handlerNr,   r%   s    r'   handlerzAbstractMatchInfo.handlerD   r/   r)   c                     dS )z*Expect handler for 100-continue processingNr,   r%   s    r'   expect_handlerz AbstractMatchInfo.expect_handlerI   r/   r)   c                     dS )z<HTTPException instance raised on router's resolving, or NoneNr,   r%   s    r'   http_exceptionz AbstractMatchInfo.http_exceptionP   r/   r)   c                     dS )z;Return a dict with additional info useful for introspectionNr,   r%   s    r'   get_infozAbstractMatchInfo.get_infoU   r/   r)   .c                     dS )z\Stack of nested applications.

        Top level application is left-most element.

        Nr,   r%   s    r'   appszAbstractMatchInfo.appsY   r/   r)   r*   Nc                     dS )z)Add application to the nested apps stack.Nr,   r-   s     r'   add_appzAbstractMatchInfo.add_appb   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'   r4   zAbstractMatchInfo.freezef   r/   r)   r;   )r<   r=   r>   	__slots__r?   r   r   r   r
   r   rC   r   rE   r   rG   r   strr	   rI   r   r   rK   rM   r4   r,   r)   r'   r6   r6   @   s       I.7)Y~-F"FG . . . ^ X. 9	7)Yx'?@@	A9 9 9 ^ X9
 K 7 K K K ^ XK J$sCx. J J J ^J eK,-    ^ X 8; 84 8 8 8 ^8    ^  r)   r6   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.r5   r!   Nc                     || _         d S r1   _requestr8   s     r'   r(   zAbstractView.__init__t   s    r)   c                     | j         S )zRequest instance.rT   r%   s    r'   r5   zAbstractView.requestw   s     }r)   c                     dS )zExecute the view handler.Nr,   r%   s    r'   	__await__zAbstractView.__await__|   r/   r)   )r<   r=   r>   __doc__r   r(   r?   r5   r   r   r   rX   r,   r)   r'   rR   rR   q   s        $$   D             X (9T4%?@ ( ( ( ^( ( (r)   rR   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)r<   r=   r>   rY   rP   __annotations__intr,   r)   r'   r[   r[      sR           MMM
III
IIIKKKJJJJJJJJr)   r[   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'   r9   zAbstractResolver.resolve   r:   r)   Nc                 
   K   dS )zRelease resolverNr,   r%   s    r'   closezAbstractResolver.close   r:   r)   r;   )r<   r=   r>   rY   r   socketAF_INETrP   rc   AddressFamilyr   r[   r9   rh   r,   r)   r'   re   re      s          %&v~3 33"3060D3	m	3 3 3 ^3
    ^  r)   re   zMorsel[str]c                   0   e Zd ZdZdddeej                 ddfdZee	de
fd                        Ze	ddee         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 r1   )asyncioget_running_loop_loop)r&   rn   s     r'   r(   zAbstractCookieJar.__init__   s    7W577


r)   c                     dS )z(Return True if cookies should be quoted.Nr,   r%   s    r'   quote_cookiezAbstractCookieJar.quote_cookie   r/   r)   	predicatec                     dS )z,Clear all cookies if no predicate is passed.Nr,   )r&   ru   s     r'   clearzAbstractCookieJar.clear   r/   r)   domainc                     dS )z0Clear all cookies for domain and all subdomains.Nr,   )r&   rx   s     r'   clear_domainzAbstractCookieJar.clear_domain   r/   r)   cookiesresponse_urlc                     dS )zUpdate cookies.Nr,   )r&   r{   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)   r1   )r<   r=   r>   rY   r   rp   AbstractEventLoopr(   r?   r   r@   rt   ClearCookiePredicaterw   rP   rz   r   r   r~   r   r   r   r,   r)   r'   rm   rm      s       FJ 8 8 8)B C 8t 8 8 8 8 7d 7 7 7 ^ X7 ; ;x(<= ; ; ; ; ^; ?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	e         ed<   e
deeeef         ddfd	            Ze
ddeddfd            Ze
dd            Ze
	 ddede	e         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_sizelengthchunkr!   Nc                 
   K   dS )zWrite chunk into stream.Nr,   r&   r   s     r'   writezAbstractStreamWriter.write   r:   r)   r)   c                 
   K   dS )zWrite last chunk.Nr,   r   s     r'   	write_eofzAbstractStreamWriter.write_eof   r:   r)   c                 
   K   dS )zFlush the write buffer.Nr,   r%   s    r'   drainzAbstractStreamWriter.drain   r:   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   r:   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)   r;   )r   N)r<   r=   r>   rY   r   rc   rb   r   r   r   r   r   bytes	bytearray
memoryviewr   r   r   rP   r   r   r   r   r,   r)   r'   r   r      s        !!KKFHSM'ui'C!D ' ' ' ' ^'    U  T       ^  & & & ^& CG+ ++3;C=+	+ + + ^+
 ' ' ' ^' !!);!	! ! ! ^!
     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 r1   r   )r&   r   r   s      r'   r(   zAbstractAccessLogger.__init__  s    $r)   r5   responsetimec                     dS )zEmit log to logger.Nr,   )r&   r5   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)   )r<   r=   r>   rY   rO   loggingLoggerrP   r(   r   r   r   floatr   r?   r@   r   r,   r)   r'   r   r      s        (((I%w~ %3 %4 % % % % "; ". " "RV " " " ^"     X  r)   r   )6rp   r   ri   abcr   r   collections.abcr   http.cookiesr   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   	multidictr   yarlr   _cookie_helpersr   typedefsr   web_appr   web_exceptionsr   web_requestr   r   web_responser   r    r6   rR   r[   re   rP   IterableBaser@   r   rm   r   r   r,   r)   r'   <module>r      sN      # # # # # # # # ! ! ! ! ! ! + + + + + + + +                               " ! ! ! ! !       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F( ( ( ( (3 ( ( (V    3     r)   