
    kKj'-                        d dl Z d dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZ ddlmZmZ  edd	dd	d
      Z	 d)dededededeeef   f
dZ G d dej
                  j6                        Z G d d      Z G d dej
                  j6                        Z G d de      Z G d de      Z  G d de      Z!	 d*deee	ef   deded edee e!f   f
d!Z" ed"e#      Z# G d$ d%ee#         Z$dedd&fd'Z%d(Z&y)+    N)ABCabstractmethod)Path)MappingProxyType)Any	GeneratorGenericOptionalTupleTypeVarUnion   )AIOFile
FileIOType      )utf-8zutf-16zUTF-8zUTF-16afp
chunk_sizeoffsetencodingreturnc                   K   |dk  r7| j                  d|       d {   }t        |      |j                  |      fS d }t        t        j                  |d            D ]3  }| j                  ||z   |       d {   }	 |j                  |      } n |t        |      }||fS 7 7 -# t        $ r}|}Y d }~[d }~ww xY ww)Nr   r   r   )
read_byteslendecoderangeENCODING_MAPgetUnicodeDecodeError)	r   r   r   r   chunk_bytes
last_errorretrychunkes	            ^/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/aiofile/utils.pyunicode_readerr)      s      A~NN2v66;!3!3X!3!FFFJ|''!45NN:+=vFF	&&&9E	 6 [!Ju! 7
 G " 	J	sL   CB'AC;B)<CB+C)C+	C 4B;6C;C  Cc                   b    e Zd ZdZdZdefdededefdZdee	e
f   fd	Zdee	e
f   fd
ZddZy)Reader)_chunk_size__offsetfile__lockr   i   r   aio_filer   r   c                     t        j                         | _        t        |      | _        t        |      | _        || _        | j                  j                  | _        y N)asyncioLock_Reader__lockint_Reader__offsetr,   r.   r   )selfr0   r   r   s       r(   __init__zReader.__init__2   s@    
 llnFz?			**    r   c                   K   | j                   4 d {    | j                  j                  j                  rD| j                  j	                  | j
                  | j                         d {   }t        |      }nBt        | j                  | j
                  | j                  | j                         d {   \  }}d d d       d {    | xj                  z  c_        S 7 7 {7 27 !# 1 d {  7  sw Y   1xY ww)Nr   )
r5   r.   modebinaryr   r,   r7   r   r)   r   )r8   r&   r   s      r(   
read_chunkzReader.read_chunk>   s     ;;;yy~~$$"ii22$$dmm  !Z
*8IIt//!]]+ %!
E ; 	# 
% ;;;sj   DC%DAC-+C',A
C-6C)7C->D	C+
D'C-)C-+D-C?3C64C?;Dc                 \   K   | j                          d {   }|st        |      |S 7 wr2   )r>   StopAsyncIteration)r8   r&   s     r(   	__anext__zReader.__anext__M   s-     oo''$U++ (s   ,*,c                     | S r2    r8   s    r(   	__aiter__zReader.__aiter__U       r:   N)r   r+   )__name__
__module____qualname__	__slots__
CHUNK_SIZEr   r6   r9   r   strbytesr>   rA   rE   rC   r:   r(   r+   r+   -   s`    GIJ 01$
+
+),
+
+%U
"3 sEz!2 r:   r+   c                   <    e Zd ZdZd	dedefdZdeee	f   ddfdZ
y)
Writer)__chunk_sizer-   
__aio_filer/   r0   r   c                 d    t        |      | _        || _        t        j                         | _        y r2   )r6   _Writer__offset_Writer__aio_filer3   r4   _Writer__lock)r8   r0   r   s      r(   r9   zWriter.__init__\   s!    F"llnr:   datar   Nc                 z  K   | j                   4 d {    t        |t              r| j                  j	                  |      }| j                  j                  || j                         d {    | xj                  t        |      z  c_        d d d       d {    y 7 7 57 	# 1 d {  7  sw Y   y xY wwr2   )rU   
isinstancerL   rT   encode_byteswrite_bytesrS   r   r8   rV   s     r(   __call__zWriter.__call__a   sz     ;;;$$33D9//--dDMMBBBMMSY&M ;; C	 ;;;sW   B;B B;AB&,B"-"B&B;B$B;"B&$B;&B8,B/-B84B;)r   )rG   rH   rI   rJ   r   r6   r9   r   rL   rM   r\   rC   r:   r(   rO   rO   Y   s6    BI% %# %
'5e#4 ' 'r:   rO   c            	       d    e Zd ZdZdedfdedededefdZd	eee	f   fd
Z
d	ee	ef   fdZddZy)
LineReader`  r   
r0   r   r   line_sepc                    t        |||      | _        |j                  j                  rt	        j
                         nt	        j                         | _        |j                  j                  r|j                  |      | _	        y || _	        y N)r   r   )
r+   _LineReader__readerr<   r=   ioBytesIOStringIO_bufferrY   linesep)r8   r0   r   r   ra   s        r(   r9   zLineReader.__init__m   sl     xJvN %MM00BJJLbkkm 	 }}## !!(+ 	  	r:   r   c                   K   	 | j                   j                         }|r|j                  | j                        r|S || j                   j	                         z   }| j                   j                  d       | j                   j                  d       | j                  j                          d {   }|s|S | j                   j                  |       | j                   j                  |       | j                   j                  d       7 [wNr   )
rh   readlineendswithri   readtruncateseekrd   r>   write)r8   linebuffer_remainderr&   s       r(   rl   zLineReader.readline}   s     <<((*Ddll3#dll&7&7&99LL!!!$LLa  --2244E''LL/0LLu%LLa #  5s   B+D-D	.ADc                    K   | j                          d {   }|s%| j                  j                          t        |      |S 7 -wr2   )rl   rh   closer@   )r8   rr   s     r(   rA   zLineReader.__anext__   s<     ]]_$LL $T** %s   AA.Ac                     | S r2   rC   rD   s    r(   rE   zLineReader.__aiter__   rF   r:   N)r   r^   )rG   rH   rI   rK   r   r6   rL   r9   r   rM   rl   rA   rE   rC   r:   r(   r^   r^   j   se    J 01$d

),

03
 !c5j 1 !(ucz!2 r:   r^   c            
          e Zd ZdZdddedefdZeddedefd	       Z	ed
edefd       Z
e	 ddededeeef   fd       ZdeddfdZdefdZddeddfdZd dZded   fdZd!dZdeddfdZdefdZej6                  fdedefdZy)"FileIOWrapperBaser_   r   )r   r   r   c                   || _         t        j                         | _        || _        | j                  j
                  j                  r0	 t        j                  |j                        j                  | _         y y # t        $ r
 d| _         Y y w xY wrk   )_offsetr3   r4   _lockr.   r<   	appendingosstatnamest_sizeFileNotFoundError)r8   r   r   s      r(   r9   zFileIOWrapperBase.__init__   sj    \\^
	99>>##!!wwsxx088 $ % ! !s   	.A9 9BBlengthr   c                    K   t         wr2   NotImplementedErrorr8   r   s     r(   rn   zFileIOWrapperBase.read        !!   	rV   c                    K   t         wr2   r   r[   s     r(   rq   zFileIOWrapperBase.write   r   r   sizenewlinec                    K   t         wr2   r   )r8   r   r   s      r(   rl   zFileIOWrapperBase.readline   s      "!r   Nc                     || _         y r2   rz   )r8   r   s     r(   rp   zFileIOWrapperBase.seek   s	    r:   c                     | j                   S r2   r   rD   s    r(   tellzFileIOWrapperBase.tell   s    ||r:   sync_metadatac                    K   |r#| j                   j                          d {    y | j                   j                          d {    y 7 (7 wr2   )r.   fsyncfdsync)r8   r   s     r(   flushzFileIOWrapperBase.flush   s<     ))//###))""$$$ $$s!    AA"AAAAc                 T   K   | j                   j                          d {    y 7 wr2   )r.   ru   rD   s    r(   ru   zFileIOWrapperBase.close   s     iioos   (&()NNrx   c              #   V   K   | j                   j                         E d {    | S 7 wr2   )r.   	__await__rD   s    r(   r   zFileIOWrapperBase.__await__   s&     99&&((( 	)   )')c                 V   K   | j                   j                          d {    | S 7 wr2   )r.   openrD   s    r(   
__aenter__zFileIOWrapperBase.__aenter__   s$     iinn 	r   _c                 @   K   | j                          d {    y 7 wr2   )ru   r8   r   s     r(   	__aexit__zFileIOWrapperBase.__aexit__   s     jjls   c                 ,    t        | j                        S r2   )r^   r.   rD   s    r(   rE   zFileIOWrapperBase.__aiter__   s    $))$$r:   r   c                 F    t        | j                  || j                        S rc   )r+   r.   rz   )r8   r   s     r(   iter_chunkedzFileIOWrapperBase.iter_chunked   s    diiJt||LLr:   r   )r   .)F)r   N)r   rx   )rG   rH   rI   _READLINE_CHUNK_SIZEr   r6   r9   r   r   rn   rq   r   rL   rM   rl   rp   r   boolr   ru   r   r   r   r   r^   rE   r+   rK   r   rC   r:   r(   rx   rx      s(   67 	!G 	! 	! " "c " " " " " " -0""'*"	sEz	" "
3 4 c % %$ % 9%DE # $ %: % .4->-> Ms M6 Mr:   rx   c                   l     e Zd Zdef fdZdedefdZddedefdZdedefdZ	dd	ed
edefdZ
 xZS )BinaryFileWrapperr   c                 f    |j                   j                  st        d      t        |   |       y )NzExpected file in binary mode)r<   r=   
ValueErrorsuperr9   r8   r   	__class__s     r(   r9   zBinaryFileWrapper.__init__   s'    xx;<<r:   r   r   c                    K   | j                   j                  || j                         d {   }| xj                  t        |      z  c_        |S 7 $wr2   )r.   r   rz   r   )r8   r   rV   s      r(   __readzBinaryFileWrapper.__read   s@     YY))&$,,??D	! @s   *AA%Ac                    K   | j                   4 d {    | j                  |       d {   cd d d       d {    S 7 .7 7 	# 1 d {  7  sw Y   y xY wwr2   )r{   _BinaryFileWrapper__readr   s     r(   rn   zBinaryFileWrapper.read   8     :::V,, ::, :::Q   AAAAAAAAAAAAAAArV   c                 <  K   | j                   4 d {    | j                  j                  || j                        }| xj                  t	        |      z  c_        d d d       d {     d {    t	        |      S 7 m7 # 1 d {  7  sw Y   +xY w7 (wr2   )r{   r.   rZ   rz   r   )r8   rV   	operations      r(   rq   zBinaryFileWrapper.write   sj     :::		--dDLLAILLCI%L : 4y	 :::: 	sQ   BBBABB'B(	B1B2BBBBBBr   r   c                   K   | j                   4 d {    | j                  }t        j                         5 }	 | j	                  | j
                         d {   }|r'||vr|j                  |       <|j                  |       d|cxk  r|j                         k  rOn nL|j                  |       |j                  |       |j                         cd d d        cd d d       d {    S |j                  d       |j                         }||j                         z   | _        |cd d d        cd d d       d {    S 7 07 7 _7 # 1 sw Y   nxY wd d d       d {  7   y # 1 d {  7  sw Y   y xY wwrk   )r{   rz   re   rf   r   r   rq   r   rp   ro   getvaluerl   r8   r   r   r   fpr&   rr   s          r(   rl   zBinaryFileWrapper.readline   s    :::\\F"&++d.G.G"HHE"%/HHUO$4,2779,D)!{{}  ::$ GGAJ;;=D#)BGGI#5DL'  :: I	 : ::::s   E?EE?!E* EEA:E	E*E?(E)E?.:E(	E*1E?=E
>E?EE?
E?E	E*E?#E&$E?*E<0E31E<8E?r   )r      
)rG   rH   rI   r   r9   r6   rM   r   rn   rq   rl   __classcell__r   s   @r(   r   r      sb    G 
3 5 
- -e - #  3  e    r:   r   c                   l     e Zd Zdef fdZdedefdZddedefdZdedefdZ	dd	ed
edefdZ
 xZS )TextFileWrapperr   c                     |j                   j                  rt        d      t        |   |       | j
                  j                  | _        y )NzExpected file in text mode)r<   r=   r   r   r9   r.   r   r   s     r(   r9   zTextFileWrapper.__init__  s8    88??9::		**r:   r   r   c                 .  K   d}| j                   }d}|dk  s|t        |      kD  rOt        | j                  ||| j                         d {   \  }}|sn||z  }||z  }|dk  r@|t        |      kD  rO||cxkD  rdkD  r
n n|d | }|}|| _         |S 7 Gw)Nr    )rz   r   r)   r.   r   )r8   r   r   r   r&   part_offsetparts          r(   r   zTextFileWrapper.__read  s     
qjFSZ/&4		664==' !K TMEk!F qjFSZ/ ""'6NEF!s   A	BBB&B5Bc                    K   | j                   4 d {    | j                  |       d {   cd d d       d {    S 7 .7 7 	# 1 d {  7  sw Y   y xY wwr2   )r{   _TextFileWrapper__readr   s     r(   rn   zTextFileWrapper.read(  r   r   rV   c                 r  K   | j                   4 d {    |j                  | j                        }| j                  j	                  || j
                        }| xj
                  t        |      z  c_        d d d       d {     d {    t              S 7 7 # 1 d {  7  sw Y   +xY w7 (wr2   )r{   encoder   r.   rZ   rz   r   )r8   rV   
data_bytesr   s       r(   rq   zTextFileWrapper.write,  s|     :::T]]3J		--j$,,GILLC
O+L :
 : ::::
 	sQ   B7BB7A B 7B7B	B7B5B7B7 B2&B)'B2.B7r   r   c                 .  K   | j                   4 d {    | j                  }t        j                         5 }	 | j	                  | j
                         d {   }|r'||vr|j                  |       <|j                  |       d|cxk  r|j                         k  rOn nL|j                  |       |j                  |       |j                         cd d d        cd d d       d {    S |j                  d       |j                         }|t        |j                  | j                              z   | _        |cd d d        cd d d       d {    S 7 E7 7 u7 # 1 sw Y   nxY wd d d       d {  7   y # 1 d {  7  sw Y   y xY ww)Nr   r   )r{   rz   re   rg   r   r   rq   r   rp   ro   r   rl   r   r   r   r   s          r(   rl   zTextFileWrapper.readline5  s    :::\\F""&++d.G.G"HHE"%/HHUO$4,2779,D)!{{}  ::$ GGAJ;;=D#)CT]];- $DL  +  :: I	 : ::::s   FEF!F  E"EA:E"	F F(E)F.AE"=	F FE FE"F F"E+	'F .F9E<:F FF	FFr   )r   r`   )rG   rH   rI   r   r9   r6   rL   r   rn   rq   rl   r   r   s   @r(   r   r     sb    +G +3 3 ,- -c -   3  c  S  r:   r   file_specifierr<   argskwargsc                     t        | t        t        f      rt        t        |       |g|i |}n#|rt	        d      t        j
                  | fi |}|j                  j                  st        |      S t        |      S )Nz&Arguments denied when IO[Any] opening.)
rX   rL   r   r   r   from_fpr<   r=   r   r   )r   r<   r   r   r   s        r(   
async_openr   P  sp     .3+.c.)4A$A&AEFFoon7788??s##S!!r:   T)boundc                   X    e Zd ZdefdZdefdZdeedef   fdZdefdZ	deddfd	Z
y)
FileIOClonerr.   c                 R    || _         d | _        t        j                         | _        y r2   )
source_afp
cloned_afpr3   r4   r{   )r8   r.   s     r(   r9   zFileIOCloner.__init__e  s    '+\\^
r:   r   c                   K   | j                   4 d {    | j                  | j                  cd d d       d {    S | j                  j                  | j                  j                  j                          d {         | _        d d d       d {    | j                  S 7 7 m7 -7 # 1 d {  7  sw Y   | j                  S xY wwr2   )r{   r   r   r   r.   clonerD   s    r(   __clonezFileIOCloner.__clonej  s     :::* :: #oo77oo**0022DO :  : 3	 ::: sq   CB'CB/CB)C<B/=B+
>B/CB-C)C+B/-C/C5B86C=CNc                 >    | j                         j                         S r2   )_FileIOCloner__cloner   rD   s    r(   r   zFileIOCloner.__await__s  s    ||~''))r:   c                 >   K   | j                          d {   S 7 wr2   )r   rD   s    r(   r   zFileIOCloner.__aenter__v  s     \\^###s   r   c                 n   K   | j                   #| j                   j                          d {    y y 7 wr2   )r   ru   r   s     r(   r   zFileIOCloner.__aexit__y  s.     ??&//''))) ')s   *535)rG   rH   rI   r   r9   r   r   r   r   r   r   rC   r:   r(   r   r   d  sP    $Q $
q *9S$\2 *$! $*# *$ *r:   r   zFileIOCloner[FileIOWrapperBase]c                     t        |       S r2   )r   )r   s    r(   r   r   ~  s    r:   )
r   r   rx   r^   r+   r   rO   r   r   r)   )r   )r)'r3   collections.abccollectionsre   r}   abcr   r   pathlibr   typesr   typingr   r   r	   r
   r   r   r   aior   r   r    r6   rL   r)   AsyncIterabler+   rO   r^   rx   r   r   r   r   r   r   __all__rC   r:   r(   <module>r      sj     	 	 #  " K K K $  	!  AH	!+.:=
38_0)[__** )X' '"2.. 2j:M :Mz, ) , ^B ' B N "#tZ/0"
""+." o-."" C()*71: *4  %F r:   