
    qi	                         S r SSKrSSKrSr " S S\R
                  5      r " S S\R                  5      r " S S	\5      rS
\R                  4S jr
g)zSocket file object.    Ni @  c                   $    \ rS rSrSrS rS rSrg)BufferedWriter   z-Faux file object attached to a socket object.c                    U R                  5         [        U[        5      (       a  [        S5      eU R                     U R
                  R                  U5        U R                  5         [        U5      sSSS5        $ ! , (       d  f       g= f)zWrite bytes to buffer.z can't write str to binary streamN)	_checkClosed
isinstancestr	TypeError_write_lock
_write_bufextend_flush_unlockedlen)selfbs     E/home/kali/flask_env/lib/python3.13/site-packages/cheroot/makefile.pywriteBufferedWriter.write   sa    a>??OO""1%  "q6 s   6A==
Bc                 F   U R                  S5        U R                  (       aR   U R                  R                  [	        U R                  5      5      nU R                  S U2	 U R                  (       a  MQ  g g ! [
        R                   a  nUR                  n S nANIS nAff = f)Nzflush of closed file)r   r   rawr   bytesioBlockingIOErrorcharacters_written)r   nes      r   r   BufferedWriter._flush_unlocked   sz    01oo) HHNN5#9: # ooo
 %% )(()s   .A6 6B 
BB  N)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__r       r   r   r      s    7		$r%   r   c                   Z   ^  \ rS rSrSrS\R                  4U 4S jjrU 4S jrS r	Sr
U =r$ )StreamReader&   zSocket stream reader.rc                 \   > [         TU ]  [        R                  " X5      U5        SU l        g)z Initialize socket stream reader.r   N)super__init__socketSocketIO
bytes_readr   sockmodebufsize	__class__s       r   r,   StreamReader.__init__)   s"    4g>r%   c                 d   > [         TU ]  " U0 UD6nU =R                  [        U5      -  sl        U$ )zCapture bytes read.)r+   readr/   r   )r   argskwargsvalr4   s       r   r7   StreamReader.read.   s-    glD+F+3s8#
r%   c                 F    [        U R                  5      U R                  :  $ )z.Return true if there is buffered data to read.)r   	_read_buf	_read_pos)r   s    r   has_dataStreamReader.has_data4   s    4>>"T^^33r%   )r/   )r   r    r!   r"   r#   r   DEFAULT_BUFFER_SIZEr,   r7   r?   r$   __classcell__r4   s   @r   r'   r'   &   s%    "%r/E/E 
4 4r%   r'   c                   T   ^  \ rS rSrSrS\R                  4U 4S jjrU 4S jrSr	U =r
$ )StreamWriter9   zSocket stream writer.wc                 \   > [         TU ]  [        R                  " X5      U5        SU l        g)z Initialize socket stream writer.r   N)r+   r,   r-   r.   bytes_writtenr0   s       r   r,   StreamWriter.__init__<   s#    4g>r%   c                 l   > [         TU ]  " U/UQ70 UD6nU =R                  [        U5      -  sl        U$ )zCapture bytes written.)r+   r   rI   r   )r   r:   r8   r9   resr4   s        r   r   StreamWriter.writeA   s5    gmC1$1&1c#h&
r%   )rI   )r   r    r!   r"   r#   r   rA   r,   r   r$   rB   rC   s   @r   rE   rE   9   s     "%r/E/E 
 r%   rE   r)   c                 8    SU;   a  [         O[        nU" XU5      $ )z(File object attached to a socket object.r)   )r'   rE   )r1   r2   r3   clss       r   MakeFilerP   H   s    +,<Ct7##r%   )r#   _pyior   r-   SOCK_WRITE_BLOCKSIZEr   BufferedReaderr'   rE   rA   rP   r   r%   r   <module>rT      sZ        $R&& $442$$ 4&>  R%;%; $r%   