Ë
    Eü´jp  ã                   óÚ  — 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«      Z3y)!é    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                   ó\   — 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    úI/root/workspace/ytshorts/venv/lib/python3.12/site-packages/aiohttp/abc.pyÚ__init__zAbstractRouter.__init__   s	   € Øˆ�ó    Úappc                  ó   — y)zºPost 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| _         y)zFreeze router.TNr    r"   s    r$   ÚfreezezAbstractRouter.freeze*   s	   € àˆ�r&   ÚrequestÚAbstractMatchInfoc              ƒ   ó   K  — y­w)z#Return MATCH_INFO for given requestNr)   ©r#   r2   s     r$   ÚresolvezAbstractRouter.resolve.   ó   è ø� ùó   ‚©r   N)Ú__name__Ú
__module__Ú__qualname__r%   r   r+   ÚpropertyÚboolr/   r1   r   r   r6   r)   r&   r$   r   r      s]   „ óð˜[ð ¨Tó ð ð˜ò ó ðóð ð2 Wð 2Ð1Dò 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y)r3   r)   r   c                  ó   — y)zExecute matched request handlerNr)   r"   s    r$   ÚhandlerzAbstractMatchInfo.handler7   r,   r&   Nc                  ó   — y)z*Expect handler for 100-continue processingNr)   r"   s    r$   Úexpect_handlerz AbstractMatchInfo.expect_handler<   r,   r&   c                  ó   — y)z<HTTPException instance raised on router's resolving, or NoneNr)   r"   s    r$   Úhttp_exceptionz AbstractMatchInfo.http_exceptionC   r,   r&   c                  ó   — y)z;Return a dict with additional info useful for introspectionNr)   r"   s    r$   Úget_infozAbstractMatchInfo.get_infoH   r,   r&   .c                  ó   — y)z\Stack of nested applications.

        Top level application is left-most element.

        Nr)   r"   s    r$   ÚappszAbstractMatchInfo.appsL   r,   r&   r'   c                  ó   — y)z)Add application to the nested apps stack.Nr)   r*   s     r$   Úadd_appzAbstractMatchInfo.add_appU   r,   r&   c                  ó   — y)z‡Freeze 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&   r9   )r:   r;   r<   Ú	__slots__r=   r   r   r   r   r   rA   rC   r   rE   ÚdictÚstrr   rG   Útupler   rI   rK   r1   r)   r&   r$   r3   r3   3   s'  „ à€IàØð.˜ 7 )¨Y°~Ñ-FÐ"FÑGò .ó ó ð.ð Øð9à	�7�)˜Y ~¸Ñ'<Ñ=Ð=Ñ	>ò9ó ó ð9ð
 ØðK °Ñ 4ò Kó ó ðKð ðJ˜$˜s C˜x™.ò Jó ðJð Øð�e˜K¨Ð,Ñ-ò ó ó ðð ð8˜;ð 8¨4ò 8ó ð8ð òó ñr&   r3   c                   óX   — 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y)ÚAbstractViewzAbstract class based view.r2   r   Nc                 ó   — || _         y r.   ©Ú_requestr5   s     r$   r%   zAbstractView.__init__g   s	   € Øˆ�r&   c                 ó   — | j                   S )zRequest instance.rT   r"   s    r$   r2   zAbstractView.requestj   s   € ð �}‰}Ðr&   c                  ó   — y)zExecute the view handler.Nr)   r"   s    r$   Ú	__await__zAbstractView.__await__o   r,   r&   )r:   r;   r<   Ú__doc__r   r%   r=   r2   r   r   r   rX   r)   r&   r$   rR   rR   d   sZ   „ Ù$ð  ð  ¨Dó  ð ð˜ò ó ðð ð(˜9 T¨4°Ð%?Ñ@ò (ó ñ(r&   rR   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<   rY   rO   Ú__annotations__Úintr)   r&   r$   r[   r[   t   s'   … ñð ƒMØ
ƒIØ
ƒIØƒKØƒJØ„Jr&   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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$   r6   zAbstractResolver.resolve�   r7   r8   Nc              ƒ   ó   K  — y­w)zRelease resolverNr)   r"   s    r$   ÚclosezAbstractResolver.close“   r7   r8   r9   )r:   r;   r<   rY   r   ÚsocketÚAF_INETrO   rc   ÚAddressFamilyÚlistr[   r6   rh   r)   r&   r$   re   re   Š   s_   „ Ù àà%&ÀvÇ~Á~ñ3Øð3Ø"ð3Ø06×0DÑ0Dð3à	ˆmÑ	ò3ó ð3ð
 òó ñr&   re   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y)ÚAbstractCookieJarzAbstract Cookie Jar.N)Úloopro   r   c                ó>   — |xs t        j                  «       | _        y r.   )ÚasyncioÚget_running_loopÚ_loop)r#   ro   s     r$   r%   zAbstractCookieJar.__init__¤   s   € ØÒ7œW×5Ñ5Ó7ˆ�
r&   c                  ó   — y)z5Return True if cookies can be used with IP addresses.Nr)   r"   s    r$   ÚunsafezAbstractCookieJar.unsafe§   r,   r&   c                  ó   — y)z(Return True if cookies should be quoted.Nr)   r"   s    r$   Úquote_cookiezAbstractCookieJar.quote_cookie¬   r,   r&   c                  ó   — y)z&Return the cookies stored in this jar.Nr)   r"   s    r$   ÚcookieszAbstractCookieJar.cookies±   r,   r&   c                  ó   — y)z0Return the host-only cookies stored in this jar.Nr)   r"   s    r$   Úhost_only_cookiesz#AbstractCookieJar.host_only_cookies¶   r,   r&   Ú	predicatec                  ó   — y)z,Clear all cookies if no predicate is passed.Nr)   )r#   r|   s     r$   ÚclearzAbstractCookieJar.clear»   r,   r&   Údomainc                  ó   — y)z0Clear all cookies for domain and all subdomains.Nr)   )r#   r   s     r$   Úclear_domainzAbstractCookieJar.clear_domain¿   r,   r&   ry   Úresponse_urlc                  ó   — y)zUpdate cookies.Nr)   )r#   ry   r‚   s      r$   Úupdate_cookiesz AbstractCookieJar.update_cookiesÃ   r,   r&   Úheadersc                 óJ   — |r!t        |«      x}r| j                  ||«       yyy)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Ç   s1   € ñ Ô-EÀgÓ-NÐNÐ)ÐNØ×ÑÐ 1°<Õ@ð Oˆ7r&   Ú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<   rY   rq   ÚAbstractEventLoopr%   r=   r   r>   ru   rw   r   rP   rO   r   ry   Ú	frozensetr{   ÚClearCookiePredicater~   r�   r   r   r„   r	   rˆ   r‹   r)   r&   r$   rn   rn   ¡   sš  „ ÙàCGò 8 × 9Ñ 9¸DÑ @ð 8ÈDó 8ð ØðD˜ò Dó ó ðDð Øð7˜dò 7ó ó ð7ð Øð5Ð)¨%°°S°©/¸<Ð*GÑHò 5ó ó ð5ð Øð? 9¨U°3¸°8©_Ñ#=ò ?ó ó ð?ð ñ;Ð3°dÑ:ð ;Àdò ;ó ð;ð ð? 3ð ?¨4ò ?ó ð?ð ÙHKËñ  lð À#ð ÐRVò ó ððAØ ‘}ðAØ47ðAà	óAð ðE¨#ð EÐ2Cò Eó ñEr&   rn   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y)ÚAbstractStreamWriterzAbstract stream writer.r   Úbuffer_sizeÚoutput_sizeNÚlengthÚchunkr   c              ƒ   ó   K  — y­w)zWrite chunk into stream.Nr)   ©r#   r”   s     r$   ÚwritezAbstractStreamWriter.writeÚ   r7   r8   c              ƒ   ó   K  — y­w)zWrite last chunk.Nr)   r–   s     r$   Ú	write_eofzAbstractStreamWriter.write_eofÞ   r7   r8   c              ƒ   ó   K  — y­w)zFlush the write buffer.Nr)   r"   s    r$   ÚdrainzAbstractStreamWriter.drainâ   r7   r8   Ú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_liner…   zCIMultiDict[str]c              ƒ   ó   K  — y­w)zWrite HTTP headersNr)   )r#   r¢   r…   s      r$   Úwrite_headersz"AbstractStreamWriter.write_headersð   r7   r8   c                  ó   — y)zàForce 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&   r9   )ÚdeflateN)r:   r;   r<   rY   r‘   rc   rb   r’   r“   r   ÚbytesÚ	bytearrayÚ
memoryviewr—   r™   r›   rO   rŸ   r¡   r¤   r¦   r)   r&   r$   r�   r�   Ó   sÿ   … Ù!à€K�ÓØ€K�ÓØ€FˆC�$‰JÓàð' ¨Ñ!2°ZÑ!?ð 'ÀDò 'ó ð'ð ñ  Uð  °Tò  ó ð ð ò&ó ð&ð à@Dñ+Øð+Ø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&   r2   ÚresponseÚtimec                  ó   — y)zEmit log to logger.Nr)   )r#   r2   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<   rY   rM   ÚloggingÚLoggerrO   r%   r   r   r   Úfloatr´   r=   r>   r¶   r)   r&   r$   r¬   r¬   þ   st   „ Ù(à(€Ið%˜wŸ~™~ð %¸3ð %À4ó %ð ð"˜;ð "°.ð "Èð "ÐRVò "ó ð"ð ð˜ò ó ñr&   r¬   )4rq   r·   ri   Ú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   rR   r[   re   rO   ÚIterableBaser>   rŽ   rn   r�   r¬   r)   r&   r$   ú<module>rÈ      sí   ðÛ Û Û ß #ß U× Uß 9Ñ 9Ý "ß 0Ñ 0å !Ý å 5Ý "áÝ$Ý-ß1Þ,à;>Ð>€KÐ>�'Ð>˜K¨.Ø€Mô2�Sô 2ô2.˜ô .ôb(�3ô (ô �Iô ô,�sô ñ Ø˜F 3™KÑ(�Là€Lð    °Ð 5Ñ6Ð ô/E˜˜|ô /Eôd(˜3ô (ôV˜3õ r&   