
    rp0jp                        S SK r S SKrS SKrS SKJrJr  S SKJrJrJ	r	J
r
JrJr  S SKJrJrJr  S SKJr  S SKJrJrJr  S SKJr  S SKJr  S	S
KJr  S	SKJr  \(       a  S	SKJ r   S	SK!J"r"  S	SK#J$r$J%r%  S	SK&J'r'  O
\=r$=r%=r r'\r" " S S\5      r( " S S\5      r) " S S\5      r* " S S\5      r+ " S S\5      r,\(       a	  \
\\-      r.O\
r.\S/\/4   r0 " S S\\.5      r1 " S S\5      r2 " S S \5      r3g)!    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                   n    \ rS rSrSS jrS\SS4S jr\S\4S j5       r	SS jr
\S	\SS
4S j5       rSrg)AbstractRouter   returnNc                     SU l         g )NF_frozenselfs    E/home/wildlama/miniconda3/lib/python3.13/site-packages/aiohttp/abc.py__init__AbstractRouter.__init__   s	        appc                     g)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_initAbstractRouter.post_init       r(   c                     U R                   $ Nr!   r#   s    r%   frozenAbstractRouter.frozen&   s    ||r(   c                     SU l         g)zFreeze router.TNr!   r#   s    r%   freezeAbstractRouter.freeze*   s	    r(   requestAbstractMatchInfoc                    #    g7f)z#Return MATCH_INFO for given requestNr+   r$   r7   s     r%   resolveAbstractRouter.resolve.           r!   r   N)__name__
__module____qualname____firstlineno__r&   r   r-   propertyboolr2   r5   r   r   r;   __static_attributes__r+   r(   r%   r   r      s]    [ T     2W 21D 2 2r(   r   c                   ,   \ rS rSrSr\\S\\/\	\
   4   4S j5       5       r\\S\\/\	\
S-     4   4S j5       5       r\\S\S-  4S j5       5       r\S\\\4   4S j5       r\\S\\S	4   4S
 j5       5       r\S\SS4S j5       r\SS j5       rSrg)r8   3   r+   r   c                     g)zExecute matched request handlerNr+   r#   s    r%   handlerAbstractMatchInfo.handler7   r/   r(   Nc                     g)z*Expect handler for 100-continue processingNr+   r#   s    r%   expect_handler AbstractMatchInfo.expect_handler<   r/   r(   c                     g)z<HTTPException instance raised on router's resolving, or NoneNr+   r#   s    r%   http_exception AbstractMatchInfo.http_exceptionC   r/   r(   c                     g)z;Return a dict with additional info useful for introspectionNr+   r#   s    r%   get_infoAbstractMatchInfo.get_infoH   r/   r(   .c                     g)zLStack of nested applications.

Top level application is left-most element.

Nr+   r#   s    r%   appsAbstractMatchInfo.appsL   r/   r(   r)   c                     g)z)Add application to the nested apps stack.Nr+   r,   s     r%   add_appAbstractMatchInfo.add_appU   r/   r(   c                     g)zoFreeze the match info.

The method is called after route resolution.

After the call .add_app() is forbidden.

Nr+   r#   s    r%   r5   AbstractMatchInfo.freezeY   r/   r(   r?   )r@   rA   rB   rC   	__slots__rD   r   r   r   r   r   rJ   rM   r   rP   dictstrr   rS   tupler   rV   rY   r5   rF   r+   r(   r%   r8   r8   3   s'   I.7)Y~-F"FG .  . 9	7)Y~'<==	>9  9
 K 4 K  K J$sCx. J J eK,-    8; 84 8 8  r(   r8   c                   f    \ rS rSrSrS\SS4S jr\S\4S j5       r\	S\
SS\4   4S j5       rS	rg)
AbstractViewd   zAbstract class based view.r7   r   Nc                     Xl         g r1   _requestr:   s     r%   r&   AbstractView.__init__g   s    r(   c                     U R                   $ )zRequest instance.re   r#   s    r%   r7   AbstractView.requestj   s     }}r(   c                     g)zExecute the view handler.Nr+   r#   s    r%   	__await__AbstractView.__await__o   r/   r(   re   )r@   rA   rB   rC   __doc__r   r&   rD   r7   r   r   r   rk   rF   r+   r(   r%   rb   rb   d   sZ    $   D      (9T4%?@ ( (r(   rb   c                   V    \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   \\S'   \\S'   S	rg
)ResolveResultt   aq  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flagsr+   N)	r@   rA   rB   rC   rm   r_   __annotations__intrF   r+   r(   r%   ro   ro   t   s'     M
I
IKJJr(   ro   c                       \ rS rSrSr\S\R                  4S\S\	S\R                  S\\   4S jj5       r\SS
 j5       rSrg	)AbstractResolver   zAbstract DNS resolver.r   rr   rs   rt   r   c                    #    g7f)z$Return IP address for given hostnameNr+   )r$   rr   rs   rt   s       r%   r;   AbstractResolver.resolve   r=   r>   Nc                    #    g7f)zRelease resolverNr+   r#   s    r%   closeAbstractResolver.close   r=   r>   r+   r?   )r@   rA   rB   rC   rm   r   socketAF_INETr_   rx   AddressFamilylistro   r;   r   rF   r+   r(   r%   rz   rz      s_     %&v~~33"3060D0D3	m	3 3
  r(   rz   zMorsel[str]c                      \ rS rSrSrSS.S\R                  S-  SS4S jjr\\	S\
4S j5       5       r\\	S\
4S	 j5       5       r\\	S\\\\4   \4   4S
 j5       5       r\\	S\\\\4      4S j5       5       r\	SS\S-  SS4S jj5       r\	S\SS4S j5       r\	\" 5       4S\S\SS4S jj5       rS\\   S\SS4S jr\	S\SS4S j5       rSrg)AbstractCookieJar   zAbstract Cookie Jar.N)loopr   r   c                J    U=(       d    [         R                  " 5       U l        g r1   )asyncioget_running_loop_loop)r$   r   s     r%   r&   AbstractCookieJar.__init__   s    7W557
r(   c                     g)z5Return True if cookies can be used with IP addresses.Nr+   r#   s    r%   unsafeAbstractCookieJar.unsafe   r/   r(   c                     g)z(Return True if cookies should be quoted.Nr+   r#   s    r%   quote_cookieAbstractCookieJar.quote_cookie   r/   r(   c                     g)z&Return the cookies stored in this jar.Nr+   r#   s    r%   cookiesAbstractCookieJar.cookies   r/   r(   c                     g)z0Return the host-only cookies stored in this jar.Nr+   r#   s    r%   host_only_cookies#AbstractCookieJar.host_only_cookies   r/   r(   	predicatec                     g)z,Clear all cookies if no predicate is passed.Nr+   )r$   r   s     r%   clearAbstractCookieJar.clear   r/   r(   domainc                     g)z0Clear all cookies for domain and all subdomains.Nr+   )r$   r   s     r%   clear_domainAbstractCookieJar.clear_domain   r/   r(   r   response_urlc                     g)zUpdate cookies.Nr+   )r$   r   r   s      r%   update_cookies AbstractCookieJar.update_cookies   r/   r(   headersc                 \    U(       a%  [        U5      =n(       a  U R                  X25        ggg)z+Update cookies from raw Set-Cookie headers.N)r   r   )r$   r   r   cookies_to_updates       r%   update_cookies_from_headers-AbstractCookieJar.update_cookies_from_headers   s/     -Eg-NN)N 1@ O7r(   request_urlzBaseCookie[str]c                     g)z6Return the jar's cookies filtered by their attributes.Nr+   )r$   r   s     r%   filter_cookies AbstractCookieJar.filter_cookies   r/   r(   )r   r1   )r@   rA   rB   rC   rm   r   AbstractEventLoopr&   rD   r   rE   r   r   r   r`   r_   r   r   	frozensetr   ClearCookiePredicater   r   r   r   r   r	   r   r   rF   r+   r(   r%   r   r      s   CG 8 9 9D @ 8D 8 D D  D 7d 7  7 5)%S/<*GH 5  5 ?9U38_#= ?  ? ;3d: ;d ; ; ?3 ?4 ? ? HK l # RV  A}A47A	A E# E2C E Er(   r   c                      \ rS rSr% SrSr\\S'   Sr\\S'   Sr	\S-  \S'   \
S\\-  \-  S	S4S
 j5       r\
SS\S	S4S jj5       r\
SS j5       r\
 SS\S\S-  S	S4S jj5       r\
SS j5       r\
S\SSS	S4S j5       rSS jrSrg)AbstractStreamWriter   zAbstract stream writer.r   buffer_sizeoutput_sizeNlengthchunkr   c                    #    g7f)zWrite chunk into stream.Nr+   r$   r   s     r%   writeAbstractStreamWriter.write   r=   r>   c                    #    g7f)zWrite last chunk.Nr+   r   s     r%   	write_eofAbstractStreamWriter.write_eof   r=   r>   c                    #    g7f)zFlush the write buffer.Nr+   r#   s    r%   drainAbstractStreamWriter.drain   r=   r>   encodingstrategyc                     g)zEnable HTTP body compressionNr+   )r$   r   r   s      r%   enable_compression'AbstractStreamWriter.enable_compression   r/   r(   c                     g)zEnable HTTP chunked modeNr+   r#   s    r%   enable_chunking$AbstractStreamWriter.enable_chunking   r/   r(   status_liner   zCIMultiDict[str]c                    #    g7f)zWrite HTTP headersNr+   )r$   r   r   s      r%   write_headers"AbstractStreamWriter.write_headers   r=   r>   c                     g)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_headers!AbstractStreamWriter.send_headers   r/   r(   r+   )r(   r?   )deflateN)r@   rA   rB   rC   rm   r   rx   rw   r   r   r   bytes	bytearray
memoryviewr   r   r   r_   r   r   r   r   rF   r+   r(   r%   r   r      s    !KKFC$J'!2Z!? 'D ' '  U  T     & & @D++36:+	+ +
 ' ' !!);!	! !
r(   r   c            	           \ rS rSrSrSrS\R                  S\SS4S jr	\
S	\S
\S\SS4S j5       r\S\4S j5       rSrg)AbstractAccessLogger   zAbstract writer to access log.logger
log_formatr   r   r   Nc                     Xl         X l        g r1   r   )r$   r   r   s      r%   r&   AbstractAccessLogger.__init__  s    $r(   r7   responsetimec                     g)zEmit log to logger.Nr+   )r$   r7   r   r   s       r%   logAbstractAccessLogger.log  r/   r(   c                     g)zCheck if logger is enabled.Tr+   r#   s    r%   enabledAbstractAccessLogger.enabled  s     r(   )r   r   )r@   rA   rB   rC   rm   r]   loggingLoggerr_   r&   r   r   r   floatr   rD   rE   r   rF   r+   r(   r%   r   r      st    ((I%w~~ %3 %4 % "; ". " "RV " "   r(   r   )4r   r   r   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   r8   rb   ro   rz   r_   IterableBaserE   r   r   r   r   r+   r(   r%   <module>r      s       # U U 9 9 " 0 0 !  5 "$-1,;>>K>'>K.M2S 22. .b(3 ( I ,s  F3K(LL   56 /E| /Ed(3 (V3 r(   