+
     h  c                   sZ   ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHt ^RIHtH	t	 ^RI
Ht ]] P                  /t]'       dB   ^ RIt]! ]R4      '       d    ^]]P"                  &   ^]]P$                  &   M^]]P&                  &   ]! ]P+                  4       4      tRt]! 4       tRt ! R	 R
4      tR# )    N)SEEK_END)OptionalUnion)ConnectionErrorTimeoutError)SSL_AVAILABLESSLWantReadErrorzConnection closed by server.s   
c                   s   a  ] tR t^t o V 3R lR ltV 3R lR ltR]R3V 3R lR lltV 3R	 lR
 ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )SocketBufferc                s@   < V ^8  d   QhRS[ P                   RS[RS[/# )   socketsocket_read_sizesocket_timeout)r
   intfloatZformat__classdict__   ":/usr/lib/python3.14/site-packages/redis/_parsers/socket.py__annotate__SocketBuffer.__annotate__   s)     $ $mm$7:$LQ$    c                s^    Wn         W n        W0n        \        P                  ! 4       V n        R # N)_sockr   r   ioZBytesIO_buffer)selfr
   r   r   s   &&&&r   __init__ZSocketBuffer.__init__   s"     
 0,zz|r   c                    < V ^8  d   QhRS[ /# r	   returnr   r   r   r   r   r   &   s      c r   c                s    V P                   P                  4       pV P                   P                  ^ \        4      pV P                   P                  V4       W!,
          # )z#
Remaining unread length of buffer
)r   tellseekr   )r   posZend   &  r   unread_bytesZSocketBuffer.unread_bytes&   sF     ll!ll8,#yr   NTc                sh   < V ^8  d   QhRS[ S[,          RS[S[S[3,          RS[ S[,          RS[/# )r	   lengthtimeoutraise_on_timeoutr   )r   r   r   r   objectboolr   r   r   r   r   /   sD     -5 -5-5 uf}%-5 #4.	-5
 
-5r   c                s   V P                   pV P                  p^ pV\        JpV P                  pVP	                  4       p	VP                  ^ \        4       V'       d   VP                  V4         V P                   P                  V4      p
\        V
\        4      '       d    \        V
4      ^ 8X  d   \        \        4      hVP                  V
4       \        V
4      pWk,          pVe	   W8  d   K   VP                  V	4       V'       d   VP                  V P                  4       R# R#   \         P"                   dN    T'       d   \%        R4      h TP                  T	4       T'       d   TP                  T P                  4       R# R# \&         d   p\(        P+                  TP,                  R4      pT'       gN   TP.                  T8X  d=    Rp?TP                  T	4       T'       d   TP                  T P                  4       R# R# \        RTP0                   24      hRp?ii ; i  TP                  T	4       T'       d   TP                  T P                  4       i i ; i)r    TNzTimeout reading from socketFz!Error while reading from socket: i)r   r   SENTINELr   r    r!   r   Z
settimeoutZrecvZ
isinstancebyteslenr   SERVER_CLOSED_CONNECTION_ERRORZwriter   r
   r&   r   NONBLOCKING_EXCEPTIONS#NONBLOCKING_EXCEPTION_ERROR_NUMBERSZgetZ	__class__errnoZargs)r   r%   r&   r'   Zsockr   ZmarkerZcustom_timeoutbufZcurrent_posdataZdata_lengthZexZalloweds   &&&&          r   _read_from_socketZSocketBuffer._read_from_socket/   s    zz00 0llhhjHOOG$	5zz'78dE**s4yA~)*HII		$!$i%%&/ HH[! 3 34  ~~ 	"#@AA HH[! 3 34  & 	Q
 :==bllBOG#G(; HH[! 3 34  "$EbggY"OPP	Q HH[! 3 34 sI   /BD) )H&H&H) 
H&H&9H!H) 	H!!H&&H) )7I c                &   < V ^8  d   QhRS[ RS[/# )r	   r&   r   )r   r)   r   r   r   r   r   ^   s     
 
 
$ 
r   c                sj    \        V P                  4       4      ;'       g    V P                  VR R7      # )F)r&   r'   )r)   r$   r3   )r   r&      &&r   can_readZSocketBuffer.can_read^   s:    D%%'( 
 
D,B,Be -C -
 	
r   c                r4   )r	   r%   r   )r   r+   r   r   r   r   r   c   s     	 	3 	5 	r   c                s    V^,           pV P                   P                  V4      pV\        V4      ,
          pV'       d3   V P                  V4       W P                   P                  V4      ,          pVRR # )r	   N)r   readr,   r3   )r   r%   r2   Zmissings   &&  r   r8   ZSocketBuffer.readc   sa    !||  (3t9$""7+LL%%g..DCRyr   c                r   r   )r+   r   r   r   r   r   n   s      % r   c                s    V P                   pVP                  4       pVP                  \        4      '       g)   V P	                  4        W!P                  4       ,          pKC  VR R # )Nr7   )r   readlineZendswithSYM_CRLFr3   )r   r1   r2   r#   r   r9   ZSocketBuffer.readlinen   sK    ll||~--))""$LLN"DCRyr   c                r   r   r   r   r   r   r   r   x   s     # # #r   c                s6    V P                   P                  4       # )z
Get current read position
)r   r    r      &r   get_posZSocketBuffer.get_posx   s     ||  ""r   c                s$   < V ^8  d   QhRS[ RR/# )r	   r"   r   Nr   r   r   r   r   r   ~   s      # $ r   c                s<    V P                   P                  V4       R# )z?
Rewind the buffer to a specific position, to re-start reading
N)r   r!   )r   r"   r5   r   rewindZSocketBuffer.rewind~   s     	#r   c                   < V ^8  d   QhRR/# r	   r   N r   r   r   r   r      s      t r   c                s    V P                  4       pV^ 8  d   R# V^ 8  d#   V P                  P                  4       pW!) R VRV% V P                  P                  V4       V P                  P	                  ^ 4       R# )z8
After a successful read, purge the read part of buffer
N)r$   r   Z	getbufferZtruncater!   )r   ZunreadZviewr#   r   purgeZSocketBuffer.purge   sl     ""$
 A:A:<<))+D ND&Mf%!r   c                r?   r@   rA   r   r   r   r   r      s      t r   c                sz     V P                   P                  4        R V n         R V n        R #   \         d     Li ; ir   )r   closeZ	Exceptionr   r;   r<   r   rC   ZSocketBuffer.close   s=    	LL  
  	 	s   , ::)r   r   r   r   )Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r$   r*   r3   r6   r8   r9   r=   r>   rB   rC   Z__static_attributes__Z__classdictcell__)r   s   @r   r   r      su     $ $  !%(0+/	-5 -5^
 

	 	 # #  & r   r   )r0   r   r
   r   Ztypingr   r   Z
exceptionsr   r   Zutilsr   ZBlockingIOErrorZEWOULDBLOCKr/   ZsslZhasattrr   ZSSLWantWriteErrorZSSLErrorZtupleZkeysr.   r-   r(   r*   r:   r   rA   r   r   <module>rD      s     	   " 6 !'68I8I&J #s&''DE+C,@,@AEF+C,A,AB<=+CLL9BGGIJ !? 8E Er   