
    gp                        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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-      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      Z3y)    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                   \    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y)AbstractRouterreturnNc                     d| _         y )NF_frozenselfs    @/var/www/openai/venv/lib/python3.12/site-packages/aiohttp/abc.py__init__zAbstractRouter.__init__'   s	        appc                      y)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.frozen2   s    ||r'   c                     d| _         y)zFreeze router.TNr!   r#   s    r%   freezezAbstractRouter.freeze6   s	    r'   requestAbstractMatchInfoc                    K   yw)z#Return MATCH_INFO for given requestNr*   r$   r3   s     r%   resolvezAbstractRouter.resolve:           r   N)__name__
__module____qualname__r&   r   r,   propertyboolr0   r2   r   r   r7   r*   r'   r%   r   r   &   s]    [ T     2W 21D 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y
)r4   r*   r   c                      y)zExecute matched request handlerNr*   r#   s    r%   handlerzAbstractMatchInfo.handlerC   r-   r'   c                      y)z*Expect handler for 100-continue processingNr*   r#   s    r%   expect_handlerz AbstractMatchInfo.expect_handlerH   r-   r'   c                      y)z<HTTPException instance raised on router's resolving, or NoneNr*   r#   s    r%   http_exceptionz AbstractMatchInfo.http_exceptionO   r-   r'   c                      y)z;Return a dict with additional info useful for introspectionNr*   r#   s    r%   get_infozAbstractMatchInfo.get_infoT   r-   r'   .c                      y)z\Stack of nested applications.

        Top level application is left-most element.

        Nr*   r#   s    r%   appszAbstractMatchInfo.appsX   r-   r'   r(   Nc                      y)z)Add application to the nested apps stack.Nr*   r+   s     r%   add_appzAbstractMatchInfo.add_appa   r-   r'   c                      y)zFreeze the match info.

        The method is called after route resolution.

        After the call .add_app() is forbidden.

        Nr*   r#   s    r%   r2   zAbstractMatchInfo.freezee   r-   r'   r:   )r;   r<   r=   	__slots__r>   r   r   r   r
   r   rB   r   rD   r   rF   r   strr	   rH   r   r   rJ   rL   r2   r*   r'   r%   r4   r4   ?   s'   I.7)Y~-F"FG .  . 9	7)Yx'?@@	A9  9
 K 7 K  K J$sCx. J J eK,-    8; 84 8 8  r'   r4   c                   X    e Zd ZdZdeddfdZedefd       Zede	e
def   fd       Zy)AbstractViewzAbstract class based view.r3   r   Nc                     || _         y r/   _requestr6   s     r%   r&   zAbstractView.__init__s   s	    r'   c                     | j                   S )zRequest instance.rS   r#   s    r%   r3   zAbstractView.requestv   s     }}r'   c                      y)zExecute the view handler.Nr*   r#   s    r%   	__await__zAbstractView.__await__{   r-   r'   )r;   r<   r=   __doc__r   r&   r>   r3   r   r   r	   r   rW   r*   r'   r%   rQ   rQ   p   sZ    $   D      (9S$%>? ( (r'   rQ   c                   N    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<   y)	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=   rX   rO   __annotations__intr*   r'   r%   rZ   rZ      s'     M
I
IKJJr'   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y)AbstractResolverzAbstract DNS resolver.r   r\   r]   r^   r   c                    K   yw)z$Return IP address for given hostnameNr*   )r$   r\   r]   r^   s       r%   r7   zAbstractResolver.resolve   r8   r9   Nc                    K   yw)zRelease resolverNr*   r#   s    r%   closezAbstractResolver.close   r8   r9   r:   )r;   r<   r=   rX   r   socketAF_INETrO   rb   AddressFamilyr   rZ   r7   rg   r*   r'   r%   rd   rd      s_     %&v~~33"3060D0D3	m	3 3
  r'   rd   zMorsel[str]c                       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e	deddfd       Zy)AbstractCookieJarzAbstract Cookie Jar.N)looprm   r   c                >    |xs t        j                         | _        y r/   )asyncioget_running_loop_loop)r$   rm   s     r%   r&   zAbstractCookieJar.__init__   s    7W557
r'   c                      y)z(Return True if cookies should be quoted.Nr*   r#   s    r%   quote_cookiezAbstractCookieJar.quote_cookie   r-   r'   	predicatec                      y)z,Clear all cookies if no predicate is passed.Nr*   )r$   rt   s     r%   clearzAbstractCookieJar.clear   r-   r'   domainc                      y)z0Clear all cookies for domain and all subdomains.Nr*   )r$   rw   s     r%   clear_domainzAbstractCookieJar.clear_domain   r-   r'   cookiesresponse_urlc                      y)zUpdate cookies.Nr*   )r$   rz   r{   s      r%   update_cookiesz AbstractCookieJar.update_cookies   r-   r'   request_urlzBaseCookie[str]c                      y)z6Return the jar's cookies filtered by their attributes.Nr*   )r$   r~   s     r%   filter_cookiesz AbstractCookieJar.filter_cookies   r-   r'   r/   )r;   r<   r=   rX   r   ro   AbstractEventLoopr&   r>   r   r?   rs   ClearCookiePredicaterv   rO   ry   r   r   r}   r   r*   r'   r%   rl   rl      s    FJ 8)B)B C 8t 8 7d 7  7 ;x(<= ; ; ; ?3 ?4 ? ? HK l # RV   E# E2C E Er'   rl   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ej&                  fdededdfd       Ze
dd       Ze
deddddfd       Zy)AbstractStreamWriterzAbstract stream writer.r   buffer_sizeoutput_sizelengthchunkr   Nc                    K   yw)zWrite chunk into stream.Nr*   r$   r   s     r%   writezAbstractStreamWriter.write   r8   r9   c                    K   yw)zWrite last chunk.Nr*   r   s     r%   	write_eofzAbstractStreamWriter.write_eof   r8   r9   c                    K   yw)zFlush the write buffer.Nr*   r#   s    r%   drainzAbstractStreamWriter.drain   r8   r9   deflateencodingstrategyc                      y)zEnable HTTP body compressionNr*   )r$   r   r   s      r%   enable_compressionz'AbstractStreamWriter.enable_compression   r-   r'   c                      y)zEnable HTTP chunked modeNr*   r#   s    r%   enable_chunkingz$AbstractStreamWriter.enable_chunking   r-   r'   status_lineheaderszCIMultiDict[str]c                    K   yw)zWrite HTTP headersNr*   )r$   r   r   s      r%   write_headersz"AbstractStreamWriter.write_headers   r8   r9   )r'   r:   )r;   r<   r=   rX   r   rb   ra   r   r   r   r   r   bytes	bytearray
memoryviewr   r   r   zlibZ_DEFAULT_STRATEGYrO   r   r   r   r*   r'   r%   r   r      s    !KKFHSM'ui'C!D ' ' '  U  T     & & '9P9P++36+	+ +
 ' ' !!);!	! !r'   r   c            	       t    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y)AbstractAccessLoggerzAbstract writer to access log.logger
log_formatr   r   r   Nc                      || _         || _        y r/   r   )r$   r   r   s      r%   r&   zAbstractAccessLogger.__init__   s    $r'   r3   responsetimec                      y)zEmit log to logger.Nr*   )r$   r3   r   r   s       r%   logzAbstractAccessLogger.log   r-   r'   c                      y)zCheck if logger is enabled.Tr*   r#   s    r%   enabledzAbstractAccessLogger.enabled   s     r'   )r;   r<   r=   rX   rN   loggingLoggerrO   r&   r   r   r   floatr   r>   r?   r   r*   r'   r%   r   r      st    ((I%w~~ %3 %4 % "; ". " "RV " "   r'   r   )4ro   r   rh   r   abcr   r   collections.abcr   http.cookiesr   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   	multidictr   yarlr   typedefsr   web_appr   web_exceptionsr   web_requestr   r   web_responser   r   r4   rQ   rZ   rd   rO   IterableBaser?   r   rl   r   r   r*   r'   r%   <module>r      s        # ! +    "  "$-1,;??K?'?K.M2S 22. .b(3 ( I ,s  F3K(LL   56 E| E8!!3 !!H3 r'   