
    i                        S SK Jr  S SKrS SKJr  S SKJr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 S
KJrJr  S SKJrJrJrJr  S SKJr   " S S5      r " S S5      rg)    )annotationsN)	Generator)AnyCallableLiteral)status)is_async_callable)run_in_threadpool)HTTPException)Request)PlainTextResponseResponse)MessageReceiveScopeSend)	WebSocketc                  <    \ rS rSrSS jrS	S jrS
S jrSS jrSrg)HTTPEndpoint   c                    US   S:X  d   eXl         X l        X0l        S Vs/ s H"  n[        XR	                  5       S 5      c  M   UPM$     snU l        g s  snf )Ntypehttp)GETHEADPOSTPUTPATCHDELETEOPTIONS)scopereceivesendgetattrlower_allowed_methods)selfr!   r"   r#   methods        [/var/www/html/qgis-automation/mouza_env/lib/python3.13/site-packages/starlette/endpoints.py__init__HTTPEndpoint.__init__   s[    V}&&&
	 W!
Vt\\^T2 V!
 !
s   AAc                >    U R                  5       R                  5       $ Ndispatch	__await__r'   s    r)   r0   HTTPEndpoint.__await__       }}((**    c                  #    [        U R                  U R                  S9nUR                  S:X  a  [	        U S5      (       d  SOUR                  R                  5       n[        XU R                  5      n[        U5      nU(       a  U" U5      I S h  vN nO[        X15      I S h  vN nU" U R                  U R                  U R                  5      I S h  vN   g  NI N7 N	7f)N)r"   r   headget)r   r!   r"   r(   hasattrr%   r$   method_not_allowedr	   r
   r#   )r'   requesthandler_namehandleris_asyncresponses         r)   r/   HTTPEndpoint.dispatch    s     $**dll; '& 8vAVAVu\c\j\j\p\p\r,3DH_H_,`$W-$W--H.w@@Htzz4<<;;; .@;s6   BC!CC!%C&/C!CC!C!C!c                   #    SSR                  U R                  5      0nSU R                  ;   a
  [        SUS9e[	        SSUS9$ 7f)NAllowz, appi  )status_codeheaderszMethod Not Allowed)joinr&   r!   r   r   )r'   r:   rD   s      r)   r9   HTTPEndpoint.method_not_allowed,   sJ      DIId&;&;<=DJJCAA !53PWXXs   AA)r&   r"   r!   r#   Nr!   r   r"   r   r#   r   returnNonerH   zGenerator[Any, None, None]rH   rI   )r:   r   rH   r   )	__name__
__module____qualname____firstlineno__r*   r0   r/   r9   __static_attributes__ r4   r)   r   r      s    	
+
<Yr4   r   c                  j    \ rS rSr% SrS\S'   SS jrSS jrSS jrSS jr	SS	 jr
SS
 jrSS jrSrg)WebSocketEndpoint6   Nz'Literal['text', 'bytes', 'json'] | Noneencodingc                >    US   S:X  d   eXl         X l        X0l        g )Nr   	websocket)r!   r"   r#   )r'   r!   r"   r#   s       r)   r*   WebSocketEndpoint.__init__9   s#    V}+++
	r4   c                >    U R                  5       R                  5       $ r-   r.   r1   s    r)   r0   WebSocketEndpoint.__await__?   r3   r4   c                  #    [        U R                  U R                  U R                  S9nU R	                  U5      I S h  vN   [
        R                  n  UR                  5       I S h  vN nUS   S:X  a3  U R                  X5      I S h  vN nU R                  X5      I S h  vN   O;US   S:X  a2  [        UR                  S5      =(       d    [
        R                  5      nOM  U R                  X5      I S h  vN   g  N N Ny Nb! [         a  n[
        R                  nUeS nAff = f N1! U R                  X5      I S h  vN    f = f7f)N)r"   r#   r   zwebsocket.receivezwebsocket.disconnectcode)r   r!   r"   r#   
on_connectr   WS_1000_NORMAL_CLOSUREdecode
on_receiveintr7   	ExceptionWS_1011_INTERNAL_ERRORon_disconnect)r'   rW   
close_codemessagedataexcs         r)   r/   WebSocketEndpoint.dispatchB   s    djj$,,TYYO	ooi(((22
	< ) 1 1 336?&99!%Y!@@D//):::V_(>>!$W[[%8%YF<Y<Y!ZJ  $$Y;;;# 	) 4@:  	66JI	 <$$$Y;;;s   >E DED
 *D+!D
 DD
 %D&?D
 %D0 &D
 (E<D.=ED
 D
 D
 

D+D&&D++D0 .E0EEEEc                  #    U R                   S:X  a;  SU;  a0  UR                  [        R                  S9I S h  vN   [	        S5      eUS   $ U R                   S:X  a;  SU;  a0  UR                  [        R                  S9I S h  vN   [	        S5      eUS   $ U R                   S:X  aC  UR                  S5      b  US   nOUS   R                  S5      n [        R                  " U5      $ U R                   b   S	U R                    35       eUR                  S5      (       a  US   $ US   $  N N! [        R                  R                   a2    UR                  [        R                  S9I S h  vN    [	        S5      ef = f7f)
Ntext)r\   z/Expected text websocket messages, but got bytesbytesz/Expected bytes websocket messages, but got textjsonzutf-8zMalformed JSON data received.z!Unsupported 'encoding' attribute )rU   closer   WS_1003_UNSUPPORTED_DATARuntimeErrorr7   r_   rm   loadsdecoderJSONDecodeError)r'   rW   rf   rk   s       r)   r_   WebSocketEndpoint.decodeW   so    ==F"W$oo6+J+JoKKK"#TUU6?"]]g%g%oo6+J+JoKKK"#TUU7##]]f${{6".vw'..w7Dzz$''
 }}$Y(I$--&YY$")++f"5"5wvK77;KK/ L L <<// Doo6+J+JoKKK"#BCCDsH   7FD-A
FD/AFD1 +AF/F1>F/E20FFc                @   #    UR                  5       I Sh  vN   g N7f)z3Override to handle an incoming websocket connectionN)accept)r'   rW   s     r)   r]   WebSocketEndpoint.on_connects   s        s   c                   #    g7f)z0Override to handle an incoming websocket messageNrQ   )r'   rW   rg   s      r)   r`   WebSocketEndpoint.on_receivew           c                   #    g7f)z,Override to handle a disconnecting websocketNrQ   )r'   rW   re   s      r)   rd   WebSocketEndpoint.on_disconnectz   rz   r{   )r"   r!   r#   rG   rJ   rK   )rW   r   rf   r   rH   r   )rW   r   rH   rI   )rW   r   rg   r   rH   rI   )rW   r   re   ra   rH   rI   )rL   rM   rN   rO   rU   __annotations__r*   r0   r/   r_   r]   r`   rd   rP   rQ   r4   r)   rS   rS   6   s1    8<H5<+<*L8!?;r4   rS   )
__future__r   rm   collections.abcr   typingr   r   r   	starletter   starlette._utilsr	   starlette.concurrencyr
   starlette.exceptionsr   starlette.requestsr   starlette.responsesr   r   starlette.typesr   r   r   r   starlette.websocketsr   r   rS   rQ   r4   r)   <module>r      sH    "  % ) )  . 3 . & ; 9 9 *"Y "YJE; E;r4   