
    bCi|                        S SK r S SKrS SKJrJr  S SKJr  S SKJrJ	r	  S SK
JrJrJrJrJrJrJr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
S=r"=r#=rr%Sr  " S S\5      r& " S S\5      r' " S S\5      r( " S S\5      r)\(       a	  \\	\*      r+O\r+\S/\,4   r- " S S\\+5      r. " S S\5      r/ " S S\5      r0g)    N)ABCabstractmethod)Sized)
BaseCookieMorsel)
TYPE_CHECKINGAny	AwaitableCallableDict	GeneratorIterableListOptionalTuple)CIMultiDict)URL   )get_running_loop)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/james-whalen/.local/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.freeze3   s	    r(   requestAbstractMatchInfoc                    #    g7f)z#Return MATCH_INFO for given requestNr+   r$   r7   s     r%   resolveAbstractRouter.resolve7           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\\/\\	   4   4S j5       5       r
\\S\\/\\\	      4   4S j5       5       r\\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   <   r   c                     g)zExecute matched request handlerNr+   r#   s    r%   handlerAbstractMatchInfo.handler=   r/   r(   c                     g)z*Expect handler for 100-continue processingNr+   r#   s    r%   expect_handler AbstractMatchInfo.expect_handlerB   r/   r(   c                     g)z<HTTPException instance raised on router's resolving, or NoneNr+   r#   s    r%   http_exception AbstractMatchInfo.http_exceptionI   r/   r(   c                     g)z;Return a dict with additional info useful for introspectionNr+   r#   s    r%   get_infoAbstractMatchInfo.get_infoN   r/   r(   .c                     g)zLStack of nested applications.

Top level application is left-most element.

Nr+   r#   s    r%   appsAbstractMatchInfo.appsR   r/   r(   r)   Nc                     g)z)Add application to the nested apps stack.Nr+   r,   s     r%   add_appAbstractMatchInfo.add_app[   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.freeze_   r/   r(   r+   r?   )r@   rA   rB   rC   rD   r   r   r   r
   r   rJ   r   rM   r   rP   r   strr	   rS   r   r   rV   rY   r5   rF   r+   r(   r%   r8   r8   <   s"   .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(   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\4   4S j5       rS	rg)
AbstractViewj   zAbstract class based view.r7   r   Nc                     Xl         g r1   _requestr:   s     r%   r&   AbstractView.__init__m   s    r(   c                     U R                   $ )zRequest instance.rb   r#   s    r%   r7   AbstractView.requestp   s     }}r(   c                     g)zExecute the view handler.Nr+   r#   s    r%   	__await__AbstractView.__await__u   r/   r(   rb   )r@   rA   rB   rC   __doc__r   r&   rD   r7   r   r   r	   r   rh   rF   r+   r(   r%   r_   r_   j   sZ    $   D      (9S$%>? ( (r(   r_   c                   `    \ rS rSrSr\S\S\S\S\\	\\
4      4S j5       r\SS	 j5       rS
rg)AbstractResolverz   zAbstract DNS resolver.hostportfamilyr   c                    #    g7f)z$Return IP address for given hostnameNr+   )r$   rn   ro   rp   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   rj   r   r]   intr   r   r	   r;   rt   rF   r+   r(   r%   rl   rl   z   sU     3# 3S 3# 3$tCQTH~BV 3 3  r(   rl   zMorsel[str]c                       \ rS rSrSrSS.S\\R                     SS4S jjr\	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4S j5       rSrg)AbstractCookieJar   zAbstract Cookie Jar.N)looprz   r   c                $    [        U5      U l        g r1   )r   _loop)r$   rz   s     r%   r&   AbstractCookieJar.__init__   s    %d+
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(   cookiesresponse_urlc                     g)zUpdate cookies.Nr+   )r$   r   r   s      r%   update_cookies AbstractCookieJar.update_cookies   r/   r(   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   rj   r   asyncioAbstractEventLoopr&   r   ClearCookiePredicater   r]   r   r   r   r   r   rF   r+   r(   r%   rx   rx      s    FJ ,)B)B C ,t , ;x(<= ; ; ; ?3 ?4 ? ? HK l # RV   E# E2C E Er(   rx   c                       \ rS rSr% SrSrSrSr\\	   \
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4S jj5       r\SS j5       r\S\SSSS4S j5       rSrg)AbstractStreamWriter   zAbstract stream writer.r   lengthchunkr   Nc                    #    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>   encodingc                     g)zEnable HTTP body compressionNr+   )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_lineheaderszCIMultiDict[str]c                    #    g7f)zWrite HTTP headersNr+   )r$   r   r   s      r%   write_headers"AbstractStreamWriter.write_headers   r=   r>   r+   )r(   r?   )deflate)r@   rA   rB   rC   rj   buffer_sizeoutput_sizer   r   rv   __annotations__r   bytesr   r   r   r]   r   r   r   rF   r+   r(   r%   r   r      s    !KKFHSM' '4 ' '  U  T     & & +3 +t + + ' ' !!);!	! !r(   r   c            	       f    \ 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rg)AbstractAccessLogger   zAbstract writer to access log.logger
log_formatr   Nc                     Xl         X l        g r1   )r   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(   )r   r   )r@   rA   rB   rC   rj   loggingLoggerr]   r&   r   r   r   floatr   rF   r+   r(   r%   r   r      sT    (%w~~ %3 %4 % "; ". " "RV " "r(   r   )1r   r   abcr   r   collections.abcr   http.cookiesr   r   typingr   r	   r
   r   r   r   r   r   r   r   	multidictr   yarlr   helpersr   typedefsr   web_appr   web_exceptionsr   web_requestr   r   web_responser   r   r8   r_   rl   r]   IterableBaserE   r   rx   r   r   r+   r(   r%   <module>r      s      # ! +   "  % "$-1,;??K?'?K.M2S 22+ +\(3 ( 	s 	 F3K(LL   56 E| E.!3 !D	"3 	"r(   