o
    Õ­j�A  ã                7   @  s°  d dl m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 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Z0e 1d¡Z2dÜdd„Z3ej4ddid�ej5ddd�ej6de7ddd d!�ej6d"e8d#d$d d!�ej6d%e7dd&d'�ej6d(e8dd)d'�ej6d*d d+d,d-�ej6d.d/d d0ej9d d1�d2�ej6d3d4d d5d6�ej6d7d8d d9d6�ej6d:e:d;d d<d=�ej6d>de8d?d@�ej6dAe.dBdCd d!�ej6dDe+dBdEd d!�ej6dFe,dBdGd d!�ej6dHe8dIdJd d!�ej6dKe8dLdMd d!�ej6dNe:dOdPd d!�ej6dQe:dOdRd d!�ej6dSe;d dTd d!�ej6dUe-dBdVd d!�ej6dWe/dBdXd d!�ej6dYej9d d1�ddZd d!�ej6d[ej9d d1�dd\d d!�ej6d]e*dd^d d!�ej6d_d d d`d-�ej6dad ddbd-�ej6dcd d ddd-�ej6ded d dfd-�ej6dgd d dhd-�ej6die7ddjd'�ej6dke7dldmd'�ej6dne8ddod'�ej6dpe8dqdrd'�ej6dse8ddtd'�ej6due8dvdwd d!�ej6dxe8ddyd'�ej6dze7dd{d d!�ej6d|e7dd}d d!�ej6d~e7ddd d!�ej6d€e8e8eƒd�d d!�ej6d‚e8e8ej<ƒdƒd d!�ej6d„e7dd…d d!�ej6d†e7d‡dˆd d!�ej6d‰dŠd d‹d6�ej6dŒd e3d+d d�dŽ�ej6d�dld d�d‘�ej6d’d“e8dd”d'�ej6d•d d+d–d d—�dÝdËdÌ„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ=dd#dddBdBdBdIdLdOdOd dBdBd+dddd;ddedd d d d ddlddqddvddddeej<dd‡dddd+ddÍœ.dÞdÙdÚ„Z>e?dÛk�rÖe=ƒ  dS dS )ßé    )ÚannotationsN)ÚRawConfigParser)ÚIOÚAnyÚCallable)Ú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   úI/var/www/html/CropPilot/venv/lib/python3.10/site-packages/uvicorn/main.pyÚ
<listcomp>'   ó    r   é   úuvicorn.errorÚctxúclick.ContextÚparamúclick.ParameterÚvalueÚboolÚreturnÚNonec                 C  s@   |r| j rd S t djtjt ¡ t ¡ t 	¡ d�¡ |  
¡  d S )NzKRunning uvicorn {version} with {py_implementation} {py_version} on {system})ÚversionÚpy_implementationÚ
py_versionÚsystem)Úresilient_parsingÚclickÚechoÚformatÚuvicornÚ__version__ÚplatformÚpython_implementationÚpython_versionr.   Úexit)r#   r%   r'   r   r   r   Úprint_version/   s   
üÿr9   Úauto_envvar_prefixÚUVICORN)Úcontext_settingsÚappÚUVICORN_APP)Úenvvarz--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@   rA   rB   z--fdz)Bind to socket from this file descriptor.z--reloadFzEnable auto-reload.)Úis_flagrA   rB   z--reload-dirÚreload_dirszRSet reload directories explicitly, instead of using the current working directory.)Úexists)ÚmultiplerB   r@   z--reload-includeÚreload_includeszÆSet 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.)rG   rB   z--reload-excludeÚreload_excludeszÙSet 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@   rA   rC   rB   z	--workersz~Number of worker processes. Defaults to the $WEB_CONCURRENCY environment variable if available, or 1. Not valid with --reload.)rA   r@   rB   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 interval in seconds.z--ws-ping-timeoutz"WebSocket ping timeout in seconds.z--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-ipsz�Comma 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.)rD   ÚcallbackÚexpose_valueÚis_eagerrB   z	--app-dirzuLook for APP in the specified directory, by adding this to the PYTHONPATH. Defaults to the current working directory.)rA   rC   rB   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.)rD   rA   rB   rC   ÚstrÚhostÚportÚintÚudsÚfdÚloopr   Úhttpr   Úwsr   Úws_max_sizeÚws_max_queueÚws_ping_intervalÚfloatÚws_ping_timeoutÚws_per_message_deflateÚlifespanr   Ú	interfacer   Úreloadú	list[str]Ú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ú
int | NoneÚssl_keyfileÚssl_certfileÚssl_keyfile_passwordÚssl_versionÚssl_cert_reqsÚssl_ca_certsÚssl_ciphersÚ
use_colorsÚapp_dirÚfactoryc/           /      C  sê  t | fi d|“d|“d|“d|“d|“d|“d|“d|“d	|	“d
|
“d|“d|“d|“d|“d|d u r5tn|“d|“d|“d|“d|“d|pGd “d|pLd “d|p£d “d|“d|“d|“d|“d|“d|“d|“d|“d|“d | “d!|!“d"|"“d#|#“d$|$“d%|%“d&|&“d'|'“d(|(“d)|)“d*d+d,„ |*D ƒ“d-|+“d.|.“d/|,“d0|-“Ž d S “d|“d|“d|“d|“d|“d|“d|“d|“d|“d | “d!|!“d"|"“d#|#“d$|$“d%|%“d&|&“d'|'“d(|(“d)|)“d*d+d,„ |*D ƒ“d-|+“d.|.“d/|,“d0|-“Ž d S )1NrU   rV   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rb   rc   ri   rj   rk   rl   rd   re   rE   rH   rI   rg   rh   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rx   ry   rz   r{   r|   r}   r~   rO   c                 S  s   g | ]}|  d d¡‘qS )ú:é   )Úsplit)r   Úheaderr   r   r   r   Å  r    zmain.<locals>.<listcomp>r   r�   r€   rS   )Úrunr   )/r=   rU   rV   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rb   rc   rd   re   rE   rH   rI   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rx   ry   rz   r{   r|   r}   r~   rO   r   r€   rS   r�   r   r   r   Úmain=   s,    _ÿþýüûúùø	÷
öõôóòñ€ðïîíì€ë€êéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñr‡   ).rU   rV   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rb   rc   rd   re   rE   rH   rI   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rx   ry   rz   r{   r|   r}   r~   rO   r   r€   r�   rS   ú*ASGIApplication | Callable[..., Any] | strú
str | Noneú)type[asyncio.Protocol] | HTTPProtocolTypeú'type[asyncio.Protocol] | WSProtocolTypeúfloat | Noneúlist[str] | str | Noneústr | os.PathLike[str] | Noneú7dict[str, Any] | str | RawConfigParser | IO[Any] | Noneústr | int | Noneúlist[tuple[str, str]] | Noneúbool | Nonec       .   3   	   C  sl  |,d urt j d|,¡ t| fi d|“d|“d|“d|“d|“d|“d|“d	|“d
|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d |“d!| “d"|!“d#|"“d$|#“d%|$“d&|%“d'|&“d(|'“d)|(“d*|)“d+|*“d,|+“d-|-“d.|.“Ž}/t|/d/�}0|/js¥|/jd0kr¹t| tƒs¹t	 
d1¡}1|1 d2¡ t  d0¡ zLz.|/jrÎ|/ ¡ }2t|/|0j|2gd3� ¡  n|/jd0krã|/ ¡ }2t|/|0j|2gd3� ¡  n|0 ¡  W n	 tyñ   Y nw W |/j�rtj |/j¡�rt |/j¡ n|/j�rtj |/j¡�rt |/j¡ w w w |0j�s0|/j�s2|/jd0k�r4t  t¡ d S d S d S d S )4Nr   rU   rV   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rb   rc   rd   re   rE   rH   rI   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rx   ry   rz   r{   r|   r}   r~   rO   r   r�   rS   )Úconfigrƒ   r"   zRYou must pass the application as an import string to enable 'reload' or 'workers'.)ÚtargetÚsockets)ÚsysÚpathÚinsertr   r   re   rh   Ú
isinstancerT   ÚloggingÚ	getLoggerÚwarningr8   Úshould_reloadÚbind_socketr   r†   r   ÚKeyboardInterruptrX   ÚosrF   ÚremoveÚstartedÚSTARTUP_FAILURE)3r=   rU   rV   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rb   rc   rd   re   rE   rH   rI   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rx   ry   rz   r{   r|   r}   r~   rO   r   r€   r�   rS   r“   ÚserverÚloggerÚsockr   r   r   r†   Í  sô   2ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò
0



€ÿ€€ÿÿÿr†   Ú__main__)r#   r$   r%   r&   r'   r(   r)   r*   )`r=   rT   rU   rT   rV   rW   rX   rT   rY   rW   rZ   r   r[   r   r\   r   r]   rW   r^   rW   r_   r`   ra   r`   rb   r(   rc   r   rd   r   re   r(   rE   rf   rH   rf   rI   rf   rg   r`   rh   rW   ri   rT   rj   rT   rk   rT   rl   r(   rm   r(   rn   r(   ro   r(   rp   rT   rq   rT   rr   rW   rs   rW   rt   rW   ru   rW   rv   rw   rx   rT   ry   rT   rz   rT   r{   rW   r|   rW   r}   rT   r~   rT   rO   rf   r   r(   r€   rT   rS   rw   r�   r(   r)   r*   )`r=   rˆ   rU   rT   rV   rW   rX   r‰   rY   rw   rZ   r   r[   rŠ   r\   r‹   r]   rW   r^   rW   r_   rŒ   ra   rŒ   rb   r(   rc   r   rd   r   re   r(   rE   r�   rH   r�   rI   r�   rg   r`   rh   rw   ri   rŽ   rj   r�   rk   r�   rl   r(   rm   r(   rn   r(   ro   r(   rp   r�   rq   rT   rr   rw   rs   rW   rt   rw   ru   rW   rv   rw   rx   r‰   ry   rŽ   rz   r‰   r{   rW   r|   rW   r}   r‰   r~   rT   rO   r‘   r   r’   r€   r‰   r�   r(   rS   rw   r)   r*   )@Ú
__future__r   Úasynciorš   r    r5   Ússlr–   Úconfigparserr   Útypingr   r   r   r0   r3   Úuvicorn._typesr   Úuvicorn.configr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Úuvicorn.serverr   r   Úuvicorn.supervisorsr   r   ÚChoiceÚlistÚkeysÚLEVEL_CHOICESÚHTTP_CHOICESÚ
WS_CHOICESÚLIFESPAN_CHOICESÚLOOP_CHOICESÚINTERFACE_CHOICESr£   r›   r¥   r9   ÚcommandÚargumentÚoptionrT   rW   ÚPathr`   r(   Ú	CERT_NONEr‡   r†   Ú__name__r   r   r   r   Ú<module>   sÞ   @


ûû
ûüü	ûüûûûûûûûûûû
û
ûûüüüüüüüüüüûüûûûûûûüúüûûlgÐ

ÿ