
    iU              
      *   % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJr  S SKJr  S SKJr  S SKJrJrJrJr  S SKrS SKJr  S SKJr  S S	KJrJr  S S
KJr  S SK J!r!  S SK"J#r#  S SK$J%r%  S SK&J'r'  \S   r(\S   r)\S   r*\S   r+\S   r,\RZ                  \R\                  \R^                  \R`                  \Rb                  \S.r2S\3S'   SSSS.r4S\3S'   SSSSSS.r5S \3S!'   S"S"S#S.r6S\3S$'   SS%S&S'S.r7S \3S('   / SQr8S)\3S*'   \	Rr                  r:S+\3S,'   S-S.S/S0SS1.S2S3S4.S5.S6S7S8S9.S:S7S;S9.S5.S6/S<S.S=.S>S<0S:/S<S.S=.S?.S@.r;SA\3SB'   \Rx                  " SC5      r=                SJSD jr>SKSE jr?SLSF jr@SMSG jrA " SH SI5      rBg)N    )annotationsN)	Awaitable)RawConfigParser)Path)IOAnyCallableLiteral)iscoroutinefunction)ASGIApplication)ImportFromStringErrorimport_from_string)TRACE_LOG_LEVEL)ASGI2Middleware)MessageLoggerMiddleware)ProxyHeadersMiddleware)WSGIMiddleware)autoh11	httptools)r   none
websocketszwebsockets-sansiowsproto)r   onoff)r   r   asynciouvloop)r   asgi3asgi2wsgi)criticalerrorwarninginfodebugtracezdict[str, int]
LOG_LEVELSz,uvicorn.protocols.http.auto:AutoHTTPProtocolz+uvicorn.protocols.http.h11_impl:H11Protocolz7uvicorn.protocols.http.httptools_impl:HttpToolsProtocolzdict[str, str]HTTP_PROTOCOLSz8uvicorn.protocols.websockets.auto:AutoWebSocketsProtocolz>uvicorn.protocols.websockets.websockets_impl:WebSocketProtocolzLuvicorn.protocols.websockets.websockets_sansio_impl:WebSocketsSansIOProtocolz4uvicorn.protocols.websockets.wsproto_impl:WSProtocolzdict[str, str | None]WS_PROTOCOLSzuvicorn.lifespan.on:LifespanOnz uvicorn.lifespan.off:LifespanOffLIFESPANz$uvicorn.loops.auto:auto_loop_factoryz*uvicorn.loops.asyncio:asyncio_loop_factoryz(uvicorn.loops.uvloop:uvloop_loop_factoryLOOP_FACTORIESzlist[InterfaceType]
INTERFACESintSSL_PROTOCOL_VERSION   Fz uvicorn.logging.DefaultFormatterz%(levelprefix)s %(message)s)()fmt
use_colorszuvicorn.logging.AccessFormatterzD%(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s)r0   r1   )defaultaccessr3   zlogging.StreamHandlerzext://sys.stderr)	formatterclassstreamr4   zext://sys.stdoutINFO)handlerslevel	propagater:   )uvicornuvicorn.erroruvicorn.access)versiondisable_existing_loggers
formattersr9   loggerszdict[str, Any]LOGGING_CONFIGr=   c                  ^ [         R                  " U5      nT(       a  U4S jOS nUR                  XU5        [         R                  " U5      Ul        U(       a  UR                  U5        U(       a  UR                  U5        U$ )Nc                    > T $ N )passwords   V/var/www/html/qgis-automation/mouza_env/lib/python3.13/site-packages/uvicorn/config.py<lambda>$create_ssl_context.<locals>.<lambda>s   s    H    )ssl
SSLContextload_cert_chain
VerifyModeverify_modeload_verify_locationsset_ciphers)	certfilekeyfilerH   ssl_version	cert_reqsca_certsciphersctxget_passwords	     `      rI   create_ssl_contextr\   i   sb     ..
%C)1$tL<8nnY/CO!!(+ JrL   c                     U R                  5       (       d  U R                  5       n U R                  5       $ ! [         a     gf = f)NF)is_absoluteresolveis_dirOSError)paths    rI   r`   r`   }   s?    !!<<>D{{} s   47 
AAc           	     \   [        [        [        [        UR	                  5       5      5      5      nU R	                  5       n[        R
                  " 5       nU  H  nUS:X  a  M  UR                  U5        [        [        U5      5      (       a  UR                  [        U5      5        MQ  UR                  U5       H&  n[        U5      (       d  M  UR                  U5        M(     M     [        [        U5      5      n[        [        [        U5      5      n[        [        S U5      5      n[        U Vs1 s H  n[        U5      (       d  M  UiM     sn5      n/ n[        [        U5      5       Ht  n	[        U	S-   [        U5      5       HU  n
X)   X*   R                  ;   a  UR                  X*   5        M,  X*   X)   R                  ;   d  MB  UR                  X)   5        MW     Mv     [        [        U5      R                  [        U5      5      5      n[        [        U5      5      U4$ s  snf )Nz.*c                "    U R                  5       $ rF   )r_   )xs    rI   rJ   )resolve_reload_patterns.<locals>.<lambda>   s
    QYY[rL   r/   )listsetmapr   copycwdappendr`   globrangelenparents
difference)patterns_listdirectories_listdirectoriespatternscurrent_working_directorypatternmatchreload_pathchildrenjks              rI   resolve_reload_patternsr}      s   "3s41A1F1F1H'I#JKK',,.H $
  d? $w-  tG}-277@%==&&u- A ! s;'(Ks4-.Ks0+>?K{Z{f[FY{Z[KH3{#$q1uc+./A~!7!77/;>#9#99/	 0 % s;'223x=ABKH++ [s   4H)H)c                d    U c  / $ [        U [        5      (       a  U /$ [        [        U 5      5      $ rF   )
isinstancestrrg   rh   )dirss    rI   _normalize_dirsr      s.    |	$vD	?rL   c            0         \ rS rSrSSSSSSSSSSSS	SS\SS	SSS
SSSSSS	S	S	SSSSSSSSSSSSS\\R                  SSSS
S40                                                                                                 SS jjr\	SS j5       r
\	SS j5       r\	SS j5       rSS jrSS jrSS jrS S jrS!S jr\	SS j5       rSrg)"Config   	127.0.0.1i@  Nr   i       g      4@TFg      ? i         TLSv1c2                @   Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        Xl        Xl        Xl        UU l        UU l        UU l        UU l        UU l        UU l        UU l        U=(       d    SU l        UU l        UU l        UU l        UU l        U U l        U!U l        U"U l        U#U l        U$U l        U%U l        U&U l         U'U l!        U(U l"        U)U l#        U*U l$        U+U l%        U,U l&        U-U l'        U.U l(        U/=(       d    / U l)        / U l*        U0U l+        U1U l,        SU l-        U R]                  5         / U l/        / U l0        / U l1        / U l2        U(       d  U(       d  U(       a&  U Rf                  (       d  [h        Rk                  S5        U Rf                  (       Ga  [m        U5      n[m        U5      n[m        U5      n[o        UU5      u  U l1        U l/        [o        U/ 5      u  U l2        U l0        U R^                  Rq                  5       n2U R`                   H@  n3U2 H7  n4U3U4:X  d  U3U4Rr                  ;   d  M   U R^                  Ru                  U45        M9     MB     U Rd                   H0  n5U5U Rb                  ;   d  M  U Rb                  Ru                  U55        M2     U R^                  (       d8  U(       a  [h        Rk                  SU5        [x        Rz                  " 5       /U l/        [h        R}                  S[        [        [        [        U R^                  5      5      5      5        Ub"  SSKCJDn6  [h        R}                  SU5        U6" US	9  Uc5  S
[        R                  ;   a!  [        [        R                  S
   5      U l        U   Uc&  [        R                  R                  SS5      U lI        OUU lI        U R&                  (       a'  U R*                  S:  a  [h        Rk                  S5        g g g ! [v         a     GM  f = f)Nr/   FzcCurrent configuration will not reload as not all conditions are met, please refer to documentation.zeProvided reload directories %s did not contain valid directories, watching current working directory.z/Will watch for changes in these directories: %sr   )load_dotenvzLoading environment from '%s')dotenv_pathWEB_CONCURRENCYFORWARDED_ALLOW_IPSr   z4"workers" flag is ignored when reloading is enabled.)Japphostportudsfdloophttpwsws_max_sizews_max_queuews_ping_intervalws_ping_timeoutws_per_message_deflatelifespan
log_config	log_level
access_logr2   	interfacereloadreload_delayworkersproxy_headersserver_headerdate_header	root_pathlimit_concurrencylimit_max_requestsbacklogtimeout_keep_alivetimeout_notifytimeout_graceful_shutdowntimeout_worker_healthcheckcallback_notifyssl_keyfilessl_certfilessl_keyfile_passwordrV   ssl_cert_reqsssl_ca_certsssl_ciphersheadersencoded_headersfactoryh11_max_incomplete_event_sizeloadedconfigure_loggingreload_dirsreload_dirs_excludesreload_includesreload_excludesshould_reloadloggerr#   r   r}   rj   rp   remove
ValueErrorr   rk   r$   sortedrg   ri   r   dotenvr   osenvironr-   getforwarded_allow_ips)7selfr   r   r   r   r   r   r   r   r   r   r   r   r   r   env_filer   r   r   r2   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rV   r   r   r   r   r   r   reload_dirs_tmp	directoryreload_directoryrw   r   s7                                                          rI   __init__Config.__init__   s   h 				&( 0.&<# $"$$"(|!**&"!2"4"4,)B&*D'.&($8!&*(&.5m:<-J* ')02!*,*,?otGYGYNNu )+6K-o>O-o>O5L_^i5j2D $"2>UVegi>j;D $";"..335O!66	(7$ $44	EUE]E]8]! ,,334DE )8 7  //d222((//8 0 ##NNM#
 %)HHJ< KKAtCT%5%5678
 *KK7BH-?0BJJ>rzz*;<=DL&')zz~~6K['YD$':D$;;4<<!+NNQR ,;I  * ! !s   P
PPc                *    SSSS.nXR                      $ )Nz2.0z3.0)r   r   r    )r   )r   mappings     rI   asgi_versionConfig.asgi_versionY  s#     5

 ~~&&rL   c                R    [        U R                  =(       d    U R                  5      $ rF   )boolr   r   r   s    rI   is_sslConfig.is_sslb  s    D$$9(9(9::rL   c                X    [        U R                  =(       d    U R                  S:  5      $ )Nr/   )r   r   r   r   s    rI   use_subprocessConfig.use_subprocessf  s    DKK34<<!#344rL   c                j   [         R                  " [        S5        U R                  Gb  [	        U R                  [
        5      (       ay  U R                  S;   a>  U R                  U R                  S   S   S'   U R                  U R                  S   S   S'   [         R                  R                  U R                  5        GOM[	        U R                  [        5      (       at  U R                  R                  S5      (       aT  [        U R                  5       n[        R                  " U5      n[         R                  R                  U5        S S S 5        O[	        U R                  [        5      (       as  U R                  R                  S5      (       aS  S	S Kn[        U R                  5       nUR                  U5      n[         R                  R                  U5        S S S 5        O([         R                  R!                  U R                  S
S9  U R"                  b  [	        U R"                  [        5      (       a  [$        U R"                     nOU R"                  n[         R&                  " S5      R)                  U5        [         R&                  " S5      R)                  U5        [         R&                  " S5      R)                  U5        U R*                  S
L a7  / [         R&                  " S5      l        S
[         R&                  " S5      l        g g ! , (       d  f       GN= f! , (       d  f       GN#= f)NTRACE)TFrA   r3   r2   r4   z.json)z.yamlz.ymlr   F)r@   r=   r>   zuvicorn.asgi)loggingaddLevelNamer   r   r   dictr2   config
dictConfigr   endswithopenjsonloadyaml	safe_load
fileConfigr   r'   	getLoggersetLevelr   r9   r;   )r   fileloaded_configr   r   s        rI   r   Config.configure_loggingj  s+   _g6??&$//400??m3MQ__DOOL1)<\JLPOODOOL1(;LI))$//:DOOS11doo6N6Nw6W6W$//*d$(IIdOMNN--m< +* DOOS11doo6N6NO`6a6a $//*d$(NN4$8MNN--m< +* ))$//TY)Z>>%$..#..&t~~6	 NN	o.77	B./88Cn-66yA??e#;=G./8<AG./9 $1 +* +*s   6L-1L#
L #
L2c           
     	   U R                   (       a   eU R                  (       an  U R                  (       d   e[        U R                  U R                  U R
                  U R                  U R                  U R                  U R                  S9U l
        OS U l
        U R                   VVs/ s H5  u  pUR                  5       R                  S5      UR                  S5      4PM7     nnnS[        U5      ;  a  U R                  (       a  S/U-   OUU l        [#        U R$                  [&        5      (       a:  [)        [*        R-                  U R$                  U R$                  5      5      nX@l        OU R$                  U l        [#        U R0                  [&        5      (       a:  [)        [2        R-                  U R0                  U R0                  5      5      nXPl        OU R0                  U l        [)        [6        U R8                     5      U l         [)        U R<                  5      U l         U R?                  5       U l        U RJ                  (       d  [B        RM                  S5        U RP                  S	:X  a  [R        RT                  " U R>                  5      (       a  [W        U R>                  S
5      nO][R        RX                  " U R>                  5      (       a  [[        U R>                  5      nO"[]        U R>                  SS 5      n[[        U5      nU(       a  SOSU l(        U RP                  S:X  a"  [_        U R>                  5      U l        S U l        O*U RP                  S:X  a  [a        U R>                  5      U l        [B        Rc                  5       [d        ::  a  [g        U R>                  5      U l        U Rh                  (       a#  [k        U R>                  U Rl                  S9U l        SU l         g s  snnf ! [@         a9  n[B        RE                  SU-  5        [F        RH                  " S5         S nAGNS nAff = f! [N         aH  nU RJ                  (       a,  [B        RE                  SU5        [F        RH                  " S5         S nAGN S nAff = f)N)rU   rT   rH   rV   rW   rX   rY   latin1   server)r   s   uvicornzError loading ASGI app. %sr/   z_ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.z"Error loading ASGI app factory: %sr   	__await____call__r   r   r    )trusted_hostsT)7r   r   r   r\   r   r   rV   r   r   r   rM   r   lowerencoder   r   r   r   r   r   r   r(   r   http_protocol_classr   r)   ws_protocol_classr*   r   lifespan_classr   
loaded_appr   r   r"   sysexitr   r#   	TypeErrorr   inspectisclasshasattr
isfunctionr   getattrr   r   getEffectiveLevelr   r   r   r   r   )	r   keyvaluer   r   r   exc
use_asgi_3calls	            rI   r   Config.load  s7   ;;;;$$$$.@((**22 ,,,,**((/DH DHdhdpdpqdpV`VYCIIK..x8%,,x:PQdpq _ 55$:L:L %%7  	 dii%%"4^5G5G		SWS\S\5]"^?R$'+yyD$dggs## 2<3C3CDGGTWW3U VDU"%)WWD"0$--1HI	0:DO

	"oo/DO <<u >>V#t//$T__kB
##DOO440A
t
DA06
(2WDN>>V#,T__=DO%)D"^^w&-doo>DO##%85dooFDO4T__TXTlTlmDOy r. % 	LL5;<HHQKK	  	||A3G	s6   )<O(O. &P4 .
P18.P,,P14
R>=RRc                    [        S5      e)Na  The `setup_event_loop` method was replaced by `get_loop_factory` in uvicorn 0.36.0.
None of those methods are supposed to be used directly. If you are doing it, please let me know here: https://github.com/Kludex/uvicorn/discussions/2706. Thank you, and sorry for the inconvenience.)AttributeErrorr   s    rI   setup_event_loopConfig.setup_event_loop  s    n
 	
rL   c                B   U R                   [        ;   a  [        [        U R                      5      nO [        U R                   5      $ Wc  g U" U R                  S9$ ! [         a8  n[        R                  SU-  5        [        R                  " S5         S nANQS nAff = f)Nz,Error loading custom loop setup function. %sr/   )r   )	r   r+   r   r   r   r"   r   r   r   )r   loop_factoryr	  s      rI   get_loop_factoryConfig.get_loop_factory  s    99&6HX\XaXaIb6cL)$))44 4+>+>?? ) KcQRs   A 
B&.BBc                   U R                   (       a  U R                   n[        R                  " [        R                  [        R                  5      n UR	                  U5        Sn[
        R                  " U R                   U5        SnSnS[        R                  " USS9-   S-   nU R                   /nGOU R                  (       ap  [        R                  " U R                  [        R                  [        R                  5      nS	nSn	S[        R                  " U	SS9-   S-   nUR!                  5       /nGO[        R"                  n
S
nU R$                  (       a"  SU R$                  ;   a  [        R&                  n
Sn[        R                  " U
S9nUR)                  [        R*                  [        R,                  S5         UR	                  U R$                  U R.                  45        SU S3nS[        R                  " USS9-   S-   nU R0                  (       a  SOSnXR$                  UR!                  5       S   /n[        R2                  " U/UQ7SSU006  UR5                  S5        U$ ! [         a6  n[        R                  U5        [        R                  " S5         S nAGNS nAff = f! [         a6  n[        R                  U5        [        R                  " S5         S nAGNS nAff = f)Ni  r/   z8Uvicorn running on unix socket %s (Press CTRL+C to quit)z%szUvicorn running on T)boldz (Press CTRL+C to quit)z3Uvicorn running on socket %s (Press CTRL+C to quit)z
%s://%s:%d:z%s://[%s]:%d)familyhttpsr   extracolor_message)r   socketAF_UNIXSOCK_STREAMbindr   chmodra   r   r"   r   r   clickstyler   fromfdgetsocknameAF_INETr   AF_INET6
setsockopt
SOL_SOCKETSO_REUSEADDRr   r   r$   set_inheritable)r   rb   sock	uds_permsr	  messagesock_name_formatr  logger_argsfd_name_formatr  addr_formatprotocol_names                rI   bind_socketConfig.bind_socket  s7   8888D==1C1CDD		$!	9-
 QG#1EKK@PW[4\\_xxM88*KWW==&..&:L:LMDKG!N1EKKUY4ZZ]vvM++-.K^^F&KyySDII-,==/DOOF--v/B/BAF		499dii01
 ,K=8OPG1EKKRV4WWZssM'+{{GM())T5E5E5G5JKKGRkR/=1QRT"K  S!6  S!s0   4I) >'J, )
J)3+J$$J),
K,6+K''K,c                \    [        U R                  [        5      =(       a    U R                  $ rF   )r   r   r   r   r   s    rI   r   Config.should_reload#  s    $((C(8T[[8rL   )8r   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   rM   r   r   r   r   r   r   rV   r   r   r   r   r   r2   r   r   r   r   r   r   r   r   )br   z*ASGIApplication | Callable[..., Any] | strr   r   r   r-   r   
str | Noner   
int | Noner   zLoopFactoryType | strr   z/type[asyncio.Protocol] | HTTPProtocolType | strr   z-type[asyncio.Protocol] | WSProtocolType | strr   r-   r   r-   r   float | Noner   r9  r   r   r   LifespanTyper   str | os.PathLike[str] | Noner   z7dict[str, Any] | str | RawConfigParser | IO[Any] | Noner   zstr | int | Noner   r   r2   zbool | Noner   InterfaceTyper   r   r   list[str] | str | Noner   floatr   r=  r   r=  r   r8  r   r   r   r   r   r   r   r=  r   r   r   r8  r   r8  r   r-   r   r-   r   r-   r   r8  r   r-   r   z%Callable[..., Awaitable[None]] | Noner   r;  r   r;  r   r7  rV   r-   r   r-   r   r;  r   r   r   zlist[tuple[str, str]] | Noner   r   r   r8  )returnzLiteral['2.0', '3.0'])r?  r   )r?  None)r?  z.Callable[[], asyncio.AbstractEventLoop] | None)r?  zsocket.socket)__name__
__module____qualname____firstlineno__rC   r.   rM   	CERT_NONEr   propertyr   r   r   r   r   r  r  r3  r   __static_attributes__rG   rL   rI   r   r      s     &,@F<B+)-(,'+!'26N\&*"&#).2"2626""" 6:(,)-"# 04*+AE596:+// ]]6:"0448edS7dS dS 	dS
 dS dS $dS >dS :dS dS dS 'dS &dS !%dS dS  0!dS" L#dS$ $%dS& 'dS(  )dS* !+dS, -dS. ,/dS0 1dS2 03dS4 05dS6 7dS8 9dS: ;dS< =dS> 4?dS@ AdSB &CdSD 'EdSF GdSH  IdSJ KdSL $.MdSN %(OdSP ?QdSR 3SdST 4UdSV )WdSX YdSZ [dS\ 4]dS^ _dS` .adSb cdSd (2edSL ' ' ; ; 5 5$BLM^
@.` 9 9rL   r   )rT   zstr | os.PathLike[str]rU   r;  rH   r7  rV   r-   rW   r-   rX   r;  rY   r7  r?  zssl.SSLContext)rb   r   r?  r   )rr   	list[str]rs   rH  r?  ztuple[list[str], list[Path]])r   r=  r?  rH  )C
__future__r   r   r  r   r   logging.configr   r  rM   r   collections.abcr   configparserr   pathlibr   typingr   r   r	   r
   r!  uvicorn._compatr   uvicorn._typesr   uvicorn.importerr   r   uvicorn.loggingr   uvicorn.middleware.asgi2r   !uvicorn.middleware.message_loggerr    uvicorn.middleware.proxy_headersr   uvicorn.middleware.wsgir   HTTPProtocolTypeWSProtocolTyper:  LoopFactoryTyper<  CRITICALERRORWARNINGr8   DEBUGr'   __annotations__r(   r)   r*   r+   r,   PROTOCOL_TLS_SERVERr.   rC   r   r   r\   r`   r}   r   r   rG   rL   rI   <module>r`     sQ   "      	  
 
 % (  - -  / * F + 4 E C 256 UV*+=>89   ]]LL]]
N  ;8J"  GRgE'#  -
*-.  2;8	)%  #E
 D33 c 3  % 50
 4Y

 #,(
 ",(
 "+f5Q!6*(0zFQVW5" B 
		?	+$*  	
  ,  (!,Hs9 s9rL   