U
    -eF                     @   s  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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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*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZW ddlXmYZY ddlZm[Z[ ddl\m]Z]m^Z^ ddl_m`Z`maZambZb ddlcmdZdmeZemfZf ddlgmhZhmiZimjZjmkZk ddllmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZz ddl{m|Z|m}Z}m~Z~mZmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZ dZzd dlmZ W n ek
r   eZY nX ee Zdddddddede[e[jeddddeeee f eeeef  ee ee eeejeej f  eeee ed eee eeej eee ee ddd d!Zed" e jdd#d$d%Zdddddddede[e[jeddddd&eeee f eeeef  ee ee eeejeej f  eeee ed eee eeej eee ee ee j dd'd(d)Zee dd*d+d,Zed-kreejdd  dS ).    N)ArgumentParser)Iterable)import_module)
Any	AwaitableCallabler   ListOptionalSetTypeUnioncast   )AbstractAccessLogger)	all_tasks)access_logger)ApplicationCleanupError)9HTTPAcceptedHTTPBadGatewayHTTPBadRequestHTTPClientErrorHTTPConflictHTTPCreated	HTTPErrorHTTPExceptionHTTPExpectationFailedHTTPFailedDependencyHTTPForbidden	HTTPFoundHTTPGatewayTimeoutHTTPGoneHTTPInsufficientStorageHTTPInternalServerErrorHTTPLengthRequiredHTTPMethodNotAllowedHTTPMisdirectedRequest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)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)or   r   r   r   r   r   r   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   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rn   ro   rp   rq   rm   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   run_app)
SSLContextg      N@g     R@   T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).N)appr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   returnc                   s&  t | r| I d H } tt| } t| ||
|||d}| I d H  g }z|d k	rt|tt	t
tfr|t||||||	||d q|D ]"}|t||||||	||d qn4|d kr|d ks|d k	r|t|||||	||d |d k	r<t|tt	t
tfr|t|||||	d n$|D ]}|t|||||	d q|d k	rt|tsl|t|||||	d n$|D ]}|t|||||	d qp|D ]}| I d H  q|rtdd |jD }|dd| tjd	krtjd
k rd}nd}t |I d H  qW 5 | I d H  X d S )N)r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   c                 s   s   | ]}t |jV  qd S )N)strname).0s r   L/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/aiohttp/web.py	<genexpr>  s     z_run_app.<locals>.<genexpr>z6======== Running on {} ========
(Press CTRL+C to quit)z, win32)      r   i  )asyncioiscoroutiner   r   ri   setupcleanup
isinstancer   bytes	bytearray
memoryviewappendrp   rq   r   ro   startsortedsitesformatjoinsysplatformversion_infosleep)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   runnerr   hpr   sitenamesdelayr   r   r   _run_app!  s    


	




	r   zasyncio.Task[Any])	to_cancelloopr   c                 C   sj   | sd S | D ]}|   q|tj| ddi | D ]0}| rBq4| d k	r4|d| |d q4d S )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptiontask)cancelrun_until_completer   gather	cancelledr   call_exception_handler)r   r   r   r   r   r   _cancel_tasks  s    
r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                C   s   |dkrt  }| rT|rT|jdkrT|jtjkr>|tj |	 sT|
t  |t| |||||||||	|
|||||d}z6zt | || W n ttfk
r   Y nX W 5 t|h| tt|| ||  |  X dS )zRun an app locallyNzaiohttp.accessr   )r   new_event_loop	get_debugr   levelloggingNOTSETsetLevelDEBUGhasHandlers
addHandlerStreamHandlercreate_taskr   r   r   r   shutdown_asyncgenscloseset_event_looprl   KeyboardInterrupt)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z	main_taskr   r   r   r     sH    

r   )argvr   c              
   C   sx  t ddd}|jdddd |jdd	d
dd |jdddtdd |jdddd || \}}|jd\}}}|rz|s|d |dr|d zt|}W n8 t	k
r } z|d| d|  W 5 d }~X Y nX zt
||}	W n, tk
r   |d|d| Y nX |jd k	r<ttds<|d tjtjd  |	|}
t|
|j|j|jd! |jd"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)Z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   Z
arg_parserargsZ
extra_argvZmod_str_Zfunc_strmoduleexfuncr   r   r   r   main  sb     


(r   __main__)r   r   r   r   argparser   collections.abcr   	importlibr   typingr   r   r   ZTypingIterabler   r	   r
   r   r   r   abcr   helpersr   logr   Zweb_appr   r   Zweb_exceptionsr   r   r   r   r   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   Zweb_fileresponserM   Zweb_logrN   Zweb_middlewaresrO   rP   Zweb_protocolrQ   rR   rS   Zweb_requestrT   rU   rV   Zweb_responserW   rX   rY   rZ   Zweb_routedefr[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   Z
web_runnerri   rj   rk   rl   rm   rn   ro   rp   rq   Z
web_serverrr   Zweb_urldispatcherrs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   Zweb_wsr~   r   r   __all__sslr   r   r   ZHostSequencer   Z
LOG_FORMATr   floatLoggerboolr   AbstractEventLoopr   r   r   __name__r   r   r   r   r   <module>   s   0;@,4 
  @=
