
    de?K              '          d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dl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 d dlmZ d	d
lmZ d	dlm Z  d	dl!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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZc d	dldmeZe d	dlfmgZg d	dlhmiZimjZj d	dlkmlZlmmZmmnZn d	dlompZpmqZqmrZr d	dlsmtZtmuZumvZvmwZw d	dlxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZ d	dlmZmZmZmZmZmZmZmZmZ d	dlmZ d	dlmZmZmZmZmZmZmZmZmZmZmZ d	dlmZmZmZ dZ	 d dlmZ n# e$ r eZY nw xY w ej        decd           ee         Zddddd d!ded"egegj        e"dddd#d$d%ee&ee&         f         d&eeeef                  d'ee         d(ee$ee$         df         d)eeej        eej                 f                  d*ed+ed,ee         d-eed.                  d/ed0ee         d1ed2eej                 d3ed4ee         d5ee         d6ed7df$d8Zd9ed:         d;e j        d7dfd<Zddddd d!ded"egegj        e"dddd#dd=d%ee&ee&         f         d&eeeef                  d'ee         d(ee$ee$         df         d)eeej        eej                 f                  d*ed+ed,ee         d-eed.                  d/ed0ee         d1ed2eej                 d3ed4ee         d5ee         d6ed;ee j                 d7df&d>Zd?ee         d7dfd@ZedAk    r eej        d	d                    dS dS )B    N)ArgumentParser)Iterable)suppress)partial)import_module)
Any	AwaitableCallabler   ListOptionalSetTypeUnioncast)WeakSet   )AbstractAccessLogger)AppKey)access_logger)PathLike)ApplicationCleanupError);HTTPAcceptedHTTPBadGatewayHTTPBadRequestHTTPClientErrorHTTPConflictHTTPCreated	HTTPErrorHTTPExceptionHTTPExpectationFailedHTTPFailedDependencyHTTPForbidden	HTTPFoundHTTPGatewayTimeoutHTTPGoneHTTPInsufficientStorageHTTPInternalServerErrorHTTPLengthRequiredHTTPMethodNotAllowedHTTPMisdirectedRequestHTTPMoveHTTPMovedPermanentlyHTTPMultipleChoices!HTTPNetworkAuthenticationRequiredHTTPNoContentHTTPNonAuthoritativeInformationHTTPNotAcceptableHTTPNotExtendedHTTPNotFoundHTTPNotImplementedHTTPNotModifiedHTTPOkHTTPPartialContentHTTPPaymentRequiredHTTPPermanentRedirectHTTPPreconditionFailedHTTPPreconditionRequiredHTTPProxyAuthenticationRequiredHTTPRedirectionHTTPRequestEntityTooLargeHTTPRequestHeaderFieldsTooLargeHTTPRequestRangeNotSatisfiableHTTPRequestTimeoutHTTPRequestURITooLongHTTPResetContentHTTPSeeOtherHTTPServerErrorHTTPServiceUnavailableHTTPSuccessfulHTTPTemporaryRedirectHTTPTooManyRequestsHTTPUnauthorizedHTTPUnavailableForLegalReasonsHTTPUnprocessableEntityHTTPUnsupportedMediaTypeHTTPUpgradeRequiredHTTPUseProxyHTTPVariantAlsoNegotiatesHTTPVersionNotSupportedNotAppKeyWarning)FileResponse)AccessLogger)
middlewarenormalize_path_middleware)PayloadAccessErrorRequestHandlerRequestPayloadError)BaseRequest	FileFieldRequest)ContentCodingResponseStreamResponsejson_response)AbstractRouteDefRouteDefRouteTableDef	StaticDefdeletegetheadoptionspatchpostputroutestaticview)		AppRunner
BaseRunnerBaseSiteGracefulExitNamedPipeSiteServerRunnerSockSiteTCPSiteUnixSite)Server)AbstractResourceAbstractRouteDynamicResourcePlainResourcePrefixedSubAppResourceResourceResourceRouteStaticResourceUrlDispatcherUrlMappingMatchInfoView)WebSocketReadyWebSocketResponse	WSMsgType)rr   r   r   rS   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rT   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   ru   rv   rw   rx   rt   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   run_app)
SSLContextignoreT)categoryappendg      N@g     R@   F)hostportpathsockshutdown_timeoutkeepalive_timeoutssl_contextprintbacklogaccess_log_classaccess_log_format
access_loghandle_signalsreuse_address
reuse_porthandler_cancellationappr   r   r   r   r   r   r   r   ).Nr   r   r   r   r   r   r   r   returnc                  K   dddt           dd ffd}ddt          j        |           r|  d {V } t          t          |           } t          | ||
|||||          }|                                 d {V  t          t          j                              }t          |||          |_
        g }	 |t          |t          t          t          t          f          r*|                    t#          |||||	||	                     n]|D ]+}|                    t#          |||||	||	                     ,n.|||(|                    t#          ||||	||
                     |st          |t          t$          j        f          r'|                    t)          ||||	                     n+|D ](}|                    t)          ||||	                     )|gt          |t*                    s'|                    t-          ||||	                     n+|D ](}|                    t-          ||||	                     )|D ]}|                                 d {V  |rOt1          d |j        D                       } |d                    d                    |                               	 t          j        d           d {V  # |                                 d {V  w xY w)Nstarting_tasksWeakSet[asyncio.Task[object]]r   r   c                   K   t          j                    }|J |                     |           t          t           j                  5  t          j         |           |           d {V  d d d            d S # 1 swxY w Y   d S )N)timeout)asynciocurrent_taskaddr   TimeoutErrorwait_for)r   r   t_waits      +lib/python3.11/site-packages/aiohttp/web.pywaitz_run_app.<locals>.waitC  s        ""}}}1g*++ 	T 	T"55#8#8BRSSSSSSSSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	Ts   	&A<<B B excludec                 :  K   t          j                    }|J |                     |           t          j                                        |           x}rDt          j        |           d {V  t          j                                        |           x}Bd S d S N)r   r   r   	all_tasks
differencer   )r   r   taskss      r   r   z_run_app.<locals>._waitM  s       ""}}}A(**55g>>>e 	&,u%%%%%%%%% (**55g>>>e 	& 	& 	& 	& 	&    )r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   )r   r   c              3   >   K   | ]}t          |j                  V  d S r   )strname).0ss     r   	<genexpr>z_run_app.<locals>.<genexpr>  s*      ==13qv;;======r   z6======== Running on {} ========
(Press CTRL+C to quit)z, Ti  )r   r   r   N)floatr   iscoroutiner   r   rp   setupr   r   r   shutdown_callback
isinstancer   bytes	bytearray
memoryviewr   rw   osr   rx   r   rv   startsortedsitesformatjoinsleepcleanup)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   runnerr   r   hpr   sitenamesr   s                             @r   _run_appr   /  s>     (T7TKPT	T T T T T T& & & & 3 iiiiii
{C
 
 C%)++)1	 	 	F ,,..
 7>g>O>Q>Q6R6RN&t^=MNNFE^$eY
 CDD $/ '&3#-  
 
 
 
   ALL" (3$+*7'1  
 
 
 
 \dld.>LL +#"/)  	 	 	 $bk 233 $/ '	        ALL "(3$+	      dH-- $/ '	        ALL "(3$+	       	 	D**,, 	=======EE))/		%0@0@)A)A  	&-%%%%%%%%%	& nns   4HK K+	to_cancelzasyncio.Task[Any]loopc                 :   | sd S | D ]}|                                  |                    t          j        | ddi           | D ]V}|                                r|                                +|                    d|                                |d           Wd S )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptiontask)cancelrun_until_completer   gather	cancelledr   call_exception_handler)r   r   r   s      r   _cancel_tasksr     s        GNINNNOOO 
 
>> 	>>'''R!%!1!1    	
 
r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                0   |t          j                    }|                                r{|ry|j        dk    rn|j        t
          j        k    r|                    t
          j                   |	                                s&|
                    t          j                               |                    t          | fi d|d|d|d|d|d|d	|d
|d|	d|
d|d|d|d|d|d|          }	 t          j        |           |                    |           n# t           t"          f$ r Y nw xY wt%          |h|           t%          t          j        |          |           |                    |                                           |                                 dS # t%          |h|           t%          t          j        |          |           |                    |                                           |                                 w xY w)zRun an app locallyNzaiohttp.accessr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   new_event_loop	get_debugr   levelloggingNOTSETsetLevelDEBUGhasHandlers
addHandlerStreamHandlercreate_taskr   set_event_loopr   rs   KeyboardInterruptr   r   shutdown_asyncgensclose)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	main_tasks                      r   r   r     s   , |%'' ~~ ;J ;:?>N+N+Nw~--...%%'' 	;!!'"7"9"9:::  	
 	
 	
	
 	
 		

 	
 .-	
 0/	
 $	
 %	
 G	
 .-	
 0/	
 "z	
 *>	
 (-	
  "z!	
" "6!5#	
 I,	t$$$	****+,    	yk4(((g'--t444 7 7 9 9:::

 	yk4(((g'--t444 7 7 9 9:::

s+   4)D F% D2/F% 1D22F% %A0Hargvc                    t          dd          }|                    ddd           |                    dd	d
d           |                    dddt          d           |                    ddd           |                    |           \  }}|j                            d          \  }}}|r|s|                    d           |                    d          r|                    d           	 t          |          }n2# t          $ r%}|                    d| d|            Y d }~nd }~ww xY w	 t          ||          }	n+# t          $ r |                    d|d|           Y nw xY w|j        *t          t          d          s|                    d           t          j        t          j                     |	|          }
t%          |
|j        |j        |j        !           |                    d"#           d S )$Nzaiohttp.web Application serverzaiohttp.web)descriptionprog
entry_funczvCallable returning the `aiohttp.web.Application` instance to run. Should be specified in the 'module:function' syntax.z
entry-func)helpmetavarz-Hz
--hostnamez2TCP/IP hostname to serve on (default: %(default)r)	localhost)r   defaultz-Pz--portz.TCP/IP port to serve on (default: %(default)r)8080)r   typer   z-Uz--pathzjUnix file system path to serve on. Specifying a path will cause hostname and port arguments to be ignored.)r   :z,'entry-func' not in 'module:function' syntax.z#relative module names not supportedzunable to import z: zmodule z has no attribute AF_UNIXz=file system paths not supported by your operating environment)r   )r   r   r   zStopped
)r   )r   add_argumentintparse_known_argsr   	partitionerror
startswithr   ImportErrorgetattrAttributeErrorr   hasattrsocketr   basicConfigr   r   hostnamer   exit)r   
arg_parserargs
extra_argvmod_str_func_strmoduleexfuncr   s              r   mainr  *  s   4=  J H      A	     =     5     "22488D*  ?44S99GQ I7 IGHHH# @>???>w'' > > ><W<<<<========>Nvx(( N N NL7LLLLMMMMMN yWVY%?%?N	
 	
 	
 gm,,,,
$z

CCdm$)$)DDDDOOKO(((((s*   4D 
D3D..D37E %E0/E0__main__)r   r   r   r  syswarningsargparser   collections.abcr   
contextlibr   	functoolsr   	importlibr   typingr   r	   r
   TypingIterabler   r   r   r   r   r   weakrefr   abcr   helpersr   logr   typedefsr   web_appr   r   web_exceptionsr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   web_fileresponserT   web_logrU   web_middlewaresrV   rW   web_protocolrX   rY   rZ   web_requestr[   r\   r]   web_responser^   r_   r`   ra   web_routedefrb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   
web_runnerrp   rq   rr   rs   rt   ru   rv   rw   rx   
web_serverry   web_urldispatcherrz   r{   r|   r}   r~   r   r   r   r   r   r   web_wsr   r   r   __all__sslr   r  filterwarningsr   HostSequencer   
LOG_FORMATr   r   Loggerboolr   AbstractEventLoopr   r   r  __name__r    r   r   <module>r;     s
     				  



  # # # # # # $ $ $ $ $ $             # # # # # #                              % % % % % % % % % % % %             M M M M M M M M< < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < <z ; : : : : : ! ! ! ! ! !                
         
                                           
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ) ( ( ( ( (                                  @F   JJJ  +;D I I I Ic" 04<@JN"#(,+03?)4+8$(!%!&%^ ^ ^	{Ik22	3^ 5l*+
,^ 3-	^
 .2D8
9^ 5v}(EEF
G^ ^ ^ *%^ HY'(^ ^ /0^ ^ (^ ^  D>!^" #^$ %^& 
'^ ^ ^ ^B&'/6/H	   6 04<@JN"#(,+03?)4+8$(!%!&04'? ? ?	{Ik22	3? 5l*+
,? 3-	?
 .2D8
9? 5v}(EEF
G? ? ? *%? HY'(? ? /0? ? (? ?  D>!?" #?$ %?& 7,
-'?( 
)? ? ? ?D:)tCy :)T :) :) :) :)z zD!"" s   F FF