U
    &%e+B                  b   @   s  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Zd dlZd dl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mZmZmZmZ d dlmZmZ d dlmZmZ e e!e" Z#e e!e" Z$e e!e" Z%e e!e" Z&e dd e" D Z'e eZ(dZ)e*d	Z+ej,ej-e.dd
ddZ/ej0ddide1dej2de3ddddej2de4ddddej2de3dddej2de4dddej2dddd d!ej2d"d#dd$ej5dd%d&ej2d'd(dd)d*ej2d+d,dd-d*ej2d.e6d/dd0d1ej2d2de4d3d4ej2d5e'd6d7ddej2d8e$d6d9ddej2d:e%d6d;ddej2d<e4d=d>ddej2d?e4d@dAddej2dBe6dCdDddej2dEe6dCdFddej2dGe.ddHddej2dIe&d6dJddej2dKe(d6dLddej2dMej5dd%ddNddej2dOej5dd%ddPddej2dQe#ddRddej2dSdddTd!ej2dUdddVd!ej2dWdddXd!ej2dYdddZd!ej2d[ddd\d!ej2d]e3dd^dej2d_e3d`dadej2dbe4ddcdej2dde4dedfdej2dge4ddhdej2die4djdkddej2dle4ddmdej2dne3ddoddej2dpe3ddqddej2dre3ddsddej2dte4e4eduddej2dve4e4ej7dwddej2dxe3ddyddej2dze3d{d|ddej2d}d~ddd*ej2dde/ddddej2dd`dddej2dde4dddej2dddddde3e3e4e3e4eeee4e4e6e6e.eee.ej8e3 ej8e3 ej8e3 e6e4e3e3e3e.e.e.e.e3e3e4e4e4e4ej9e4 e3e3e3e4e4e3e3ej8e3 e.e3ej9e4 e.dd0ddZ:ddddd6d6d6d=d@dCdCdd6d6ddddd/ddeddddddd`ddeddjddddeej7dd{dddddd.ej;dej<e3f e3e4ej9e3 ej9e4 eej;ej=e j> ef ej;ej=e j> ef e4e4ej9e6 ej9e6 e.eee.ej9ej;ej8e3 e3f  ej9ej;ej8e3 e3f  ej9ej;ej8e3 e3f  e6ej9e4 ej9ej;e3ej?f  ej9ej;ej@e3ejAf e3f  ej9ej;e3e4f  e.e.e.e.ej9ej;ej8e3 e3f  e3ej9e4 e4ej9e4 e4ej9e4 ej9e3 ej9ej;e3ej?f  ej9e3 e4e4ej9e3 e3ej9ej8ejBe3e3f   ej9e. ej9e3 e.ej9e4 dd0ddZCeDdkre:  dS )    N)ASGIApplication)HTTP_PROTOCOLS
INTERFACESLIFESPAN
LOG_LEVELSLOGGING_CONFIGLOOP_SETUPSSSL_PROTOCOL_VERSIONWS_PROTOCOLSConfigHTTPProtocolTypeInterfaceTypeLifespanTypeLoopSetupTypeWSProtocolType)ServerServerState)ChangeReloadMultiprocessc                 C   s   g | ]}|d kr|qS )none ).0keyr   r   K/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/uvicorn/main.py
<listcomp>$   s      r      uvicorn.error)ctxparamvaluereturnc                 C   s>   |r
| j rd S tdtjt t t f  | 	  d S )Nz#Running uvicorn %s with %s %s on %s)
Zresilient_parsingclickZechouvicorn__version__platformpython_implementationpython_versionsystemexit)r   r   r   r   r   r   print_version,   s    
	r)   Zauto_envvar_prefixZUVICORN)Zcontext_settingsappz--hostz	127.0.0.1zBind socket to this host.T)typedefaulthelpshow_defaultz--porti@  zABind socket to this port. If 0, an available port will be picked.z--udszBind to a UNIX domain socket.)r+   r,   r-   z--fdz)Bind to socket from this file descriptor.z--reloadFzEnable auto-reload.)is_flagr,   r-   z--reload-dirreload_dirszRSet reload directories explicitly, instead of using the current working directory.)exists)multipler-   r+   z--reload-includereload_includeszSet glob patterns to include while watching for files. Includes '*.py' by default; these defaults can be overridden with `--reload-exclude`. This option has no effect unless watchfiles is installed.)r2   r-   z--reload-excludereload_excludeszSet glob patterns to exclude while watching for files. Includes '.*, .py[cod], .sw.*, ~*' by default; these defaults can be overridden with `--reload-include`. This option has no effect unless watchfiles is installed.z--reload-delayg      ?zTDelay between previous and next check if application needs to be. Defaults to 0.25s.)r+   r,   r.   r-   z	--workersz~Number of worker processes. Defaults to the $WEB_CONCURRENCY environment variable if available, or 1. Not valid with --reload.)r,   r+   r-   z--loopautozEvent loop implementation.z--httpzHTTP protocol implementation.z--wsz"WebSocket protocol implementation.z--ws-max-sizei   z#WebSocket max size message in bytesz--ws-max-queue    z2The maximum length of the WebSocket message queue.z--ws-ping-intervalg      4@zWebSocket ping intervalz--ws-ping-timeoutzWebSocket ping timeoutz--ws-per-message-deflatez)WebSocket per-message-deflate compressionz
--lifespanzLifespan implementation.z--interfacez:Select ASGI3, ASGI2, or WSGI as the application interface.z
--env-filezEnvironment configuration file.z--log-configzBLogging configuration file. Supported formats: .ini, .json, .yaml.z--log-levelzLog level. [default: info]z--access-log/--no-access-logzEnable/Disable access log.z--use-colors/--no-use-colorsz!Enable/Disable colorized logging.z"--proxy-headers/--no-proxy-headerszdEnable/Disable X-Forwarded-Proto, X-Forwarded-For, X-Forwarded-Port to populate remote address info.z"--server-header/--no-server-headerz%Enable/Disable default Server header.z--date-header/--no-date-headerz#Enable/Disable default Date header.z--forwarded-allow-ipszComma separated list of IPs to trust with proxy headers. Defaults to the $FORWARDED_ALLOW_IPS environment variable if available, or '127.0.0.1'.z--root-path zLSet the ASGI 'root_path' for applications submounted below a given URL path.z--limit-concurrencyz^Maximum number of concurrent connections or tasks to allow, before issuing HTTP 503 responses.z	--backlogi   z0Maximum number of connections to hold in backlogz--limit-max-requestszEMaximum number of requests to service before terminating the process.z--timeout-keep-alive   zLClose Keep-Alive connections if no new data is received within this timeout.z--timeout-graceful-shutdownz8Maximum number of seconds to wait for graceful shutdown.z--ssl-keyfilezSSL key filez--ssl-certfilezSSL certificate filez--ssl-keyfile-passwordzSSL keyfile passwordz--ssl-versionz,SSL version to use (see stdlib ssl module's)z--ssl-cert-reqsz@Whether client certificate is required (see stdlib ssl module's)z--ssl-ca-certszCA certificates filez--ssl-ciphersTLSv1z(Ciphers to use (see stdlib ssl module's)z--headerheaderszASpecify custom default HTTP response headers as a Name:Value pairz	--versionz%Display the uvicorn version and exit.)r/   callbackZexpose_valueZis_eagerr-   z	--app-dirzuLook for APP in the specified directory, by adding this to the PYTHONPATH. Defaults to the current working directory.)r,   r.   r-   z--h11-max-incomplete-event-sizeh11_max_incomplete_event_sizezFFor h11, the maximum number of bytes to buffer of an incomplete event.z	--factoryzFTreat APP as an application factory, i.e. a () -> <ASGI app> callable.)r/   r,   r-   r.   )0r*   hostportudsfdloophttpwsws_max_sizews_max_queuews_ping_intervalws_ping_timeoutws_per_message_deflatelifespan	interfacereloadr0   r3   r4   reload_delayworkersenv_file
log_config	log_level
access_logproxy_headersserver_headerdate_headerforwarded_allow_ips	root_pathlimit_concurrencybackloglimit_max_requeststimeout_keep_alivetimeout_graceful_shutdownssl_keyfilessl_certfilessl_keyfile_passwordssl_versionssl_cert_reqsssl_ca_certsssl_ciphersr:   
use_colorsapp_dirr<   factoryr    c/           /   1   C   s   t | |||||||||	|
|||||d kr,tn||||||p<d |pBd |pHd |||||||||| |!|"|#|$|%|&|'|(|)dd |*D |+|.|,|-d/ d S )Nc                 S   s   g | ]}| d dqS ):   )split)r   headerr   r   r   r     s     zmain.<locals>.<listcomp>).r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rN   rO   rP   rQ   rJ   rK   r0   r3   r4   rL   rM   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r:   rc   re   rd   r<   )runr   )/r*   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r0   r3   r4   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r:   rc   rd   r<   re   r   r   r   main;   sf      grk   ).r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r0   r3   r4   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r:   rc   rd   re   r<   r   )0r*   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r0   r3   r4   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r:   rc   rd   re   r<   r    c       .   3   0   C   sd  |,d k	rt jd|, t| |||||||||	|
|||||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|-|.d.}/t|/d}0|/js|/jdkrt| tst	
d}1|1d t d |/jr|/ }2t|/|0j|2gd  n4|/jdkr|/ }2t|/|0j|2gd  n|0  |/jr:tj|/jr:t|/j |0js`|/js`|/jdkr`t t d S )Nr   )-r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r0   r3   r4   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r:   rc   re   r<   )configrg   r   zRYou must pass the application as an import string to enable 'reload' or 'workers'.)targetsockets)syspathinsertr   r   rK   rM   
isinstancestrlogging	getLoggerwarningr(   Zshould_reloadZbind_socketr   rj   r   r?   osr1   removestartedSTARTUP_FAILURE)3r*   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r0   r3   r4   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r:   rc   rd   re   r<   rl   serverloggersockr   r   r   rj     s    40


rj   __main__)Easynciort   rw   r$   sslro   typingr!   r"   Zuvicorn._typesr   Zuvicorn.configr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Zuvicorn.serverr   r   Zuvicorn.supervisorsr   r   ZChoicelistkeysZLEVEL_CHOICESZHTTP_CHOICESZ
WS_CHOICESZLIFESPAN_CHOICESZLOOP_CHOICESZINTERFACE_CHOICESrz   ru   r|   Context	Parameterboolr)   commandargumentoptionrs   intPathfloat	CERT_NONEListOptionalrk   UnionCallableTypeProtocolPathLikeDictAnyTuplerj   __name__r   r   r   r   <module>   s  @

   
	

    ng 
