
    i                     R    d dl Z ddlmZ ddlmZ dZ G d dej                        Zy)    N   )
ProxyError)_abci   c                   .    e Zd Zd Zd ZefdZd Zd Zy)TrioSocketStreamc                     || _         y N)_socket)selfsocks     S/root/searxng-venv/lib/python3.12/site-packages/python_socks/async_/trio/_stream.py__init__zTrioSocketStream.__init__
   s	        c                    K   d}|t        |      k  r=||d  }| j                  j                  |       d {   }||z  }|t        |      k  r<y y 7 w)Nr   )lenr
   send)r   data
total_sent	remainingsents        r   	write_allzTrioSocketStream.write_all   sU     
3t9$Z[)I**955D$J 3t9$5s   4AAAAc                 T   K   | j                   j                  |       d {   S 7 wr	   )r
   recv)r   	max_bytess     r   readzTrioSocketStream.read   s!     \\&&y1111s   (&(c                    K   t               }t        |      |k  rP| j                  j                  |t        |      z
         d {   }|st	        d      ||z  }t        |      |k  rP|S 7 'w)NzConnection closed unexpectedly)	bytearrayr   r
   r   r   )r   nr   packets       r   
read_exactzTrioSocketStream.read_exact   sh     {$i!m<<,,QT];;F !ABBFND	 $i!m
 	 <s   AA/A-$A/+A/c                    K   | j                   A| j                   j                          t        j                  j	                          d {    y y 7 wr	   )r
   closetriolowlevel
checkpoint)r   s    r   r"   zTrioSocketStream.close    s>     <<#LL --**,,, $,s   AA
AAN)	__name__
__module____qualname__r   r   DEFAULT_RECEIVE_SIZEr   r    r"    r   r   r   r   	   s      $8 2-r   r   )	r#   _errorsr    r   abcr)   AsyncSocketStreamr   r*   r   r   <module>r/      s&     !  -s,, -r   