
    ng\j                         S SK Jr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Jr  SSKJr   " S	 S
\5      r " S S\5      rg)    )AnyUnion   )ConnectionErrorInvalidResponseResponseError)
EncodableT)SENTINEL   )_AsyncRESPBase	_RESPBase)SERVER_CLOSED_CONNECTION_ERRORc                   X    \ rS rSrSrS\4S\\\4   4S jjr	S\4S\\\4   4S jjr
Srg)	_RESP2Parser
   zRESP2 protocol implementationFtimeoutc                 *   U R                   (       a  U R                   R                  5       OS n U R                  XS9nU R                   R                  5         U$ ! [         a.    U R                   (       a  U R                   R                  U5        e f = f)Ndisable_decodingr   )_bufferget_pos_read_responsepurgeBaseExceptionrewind)selfr   r   posresults        O/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/redis/_parsers/resp2.pyread_response_RESP2Parser.read_response   s     )-dll""$$
	((!1 ) F LL M  	||##C(	s   A 8Bc                    U R                   R                  US9nU(       d  [        [        5      eUS S USS  pTUS:X  a:  UR	                  SSS9nU R                  U5      n[        U[        5      (       a  UeU$ US:X  a  OUS:X  a  [        U5      $ US	:X  a  US
:X  a  g US	:X  a$  U R                   R                  [        U5      US9nOTUS:X  a  US
:X  a  g US:X  a2  [        [        U5      5       Vs/ s H  nU R                  XS9PM     nnO[        SU< 35      eUSL a  U R                  R	                  U5      nU$ s  snf )N)r   r      -utf-8replaceerrors   +   :   $   -1   *r   Protocol Error: F)r   readliner   r   decodeparse_error
isinstanceintreadranger   r   encoder)r   r   r   rawbyteresponseerroris           r   r   _RESP2Parser._read_response   sb    ll##G#4!"@AARa#ab'h 4<wyAH$$X.E %11
 LT\T\x= T\h%/T\||((X(HHT\h%/T\ s8}--A ##5E#W-  H
 "$4SG"<==u$||**84Hs   1D> N)__name__
__module____qualname____firstlineno____doc__r
   r   floatobjectr    r   __static_attributes__r<       r   r   r   
   sD    '  %h/4UF]/C"  %h./4UF]/C. .rE   r   c                   N    \ rS rSrSrS	S\4S jjr S	S\S\\\	S4   4S jjr
Srg)
_AsyncRESP2ParserN   z"Async class for the RESP2 protocolr   c                 `  #    U R                   (       d  [        [        5      eU R                  (       aH  U =R                  SR                  U R                  5      -  sl        U R                  R                  5         SU l        U R                  US9I S h  vN nU R                  5         U$  N7f)NrE   r   )r   )

_connectedr   r   _chunksr   joinclear_posr   _clear)r   r   r8   s      r   r    _AsyncRESP2Parser.read_responseQ   s|     !"@AA<<LLCHHT\\22LLL 	,,>N,OO Ps   BB.B,B.returnNc                   #    U R                  5       I S h  vN nUS S USS  pCUS:X  aJ  UR                  SSS9nU R                  U5      n[        U[        5      (       a  U R                  5         UeU$ US:X  a  OUS:X  a  [        U5      $ US:X  a  US	:X  a  g US:X  a#  U R                  [        U5      5      I S h  vN nO^US
:X  a  US	:X  a  g US
:X  a<  [        [        U5      5       Vs/ s H  nU R                  U5      I S h  vN PM     nnO[        SU< 35      eUSL a  U R                  R                  U5      nU$  GN, N NAs  snf 7f)Nr   r#   r$   r%   r&   r(   r)   r*   r+   r,   r-   F)	_readliner/   r0   r1   r   rO   r2   _readr4   r   r   r5   )r   r   r6   r7   r8   r9   _s          r   r    _AsyncRESP2Parser._read_response^   sb     NN$$Ra#ab'h 4<wyAH$$X.E %11
 LT\T\x= T\h%/T\!ZZH66HT\h%/T\ s8}--A **+;<<<-  H
 "$4SG"<==u$||**84HU %8 7 =sF   EEB%E<E=.E+E	E
E	5EEE		E)rN   )F)r=   r>   r?   r@   rA   boolr    r   r	   r   r   rD   r<   rE   r   rG   rG   N   s<    ,D  (-- $-	z=$.	/- -rE   rG   N)typingr   r   
exceptionsr   r   r   r	   utilsr
   baser   r   socketr   r   rG   r<   rE   r   <module>r]      s5     H H   + 2A9 AH= =rE   