
    kKj%                        U d dl Z d dlZd dlmZ d dlmZ d dl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mZmZmZmZ d dlmZ d dlZd d	lmZ  ed
      ZdZdZeeef   Z edd      Z de!de fdZ" G d d      Z#ee jH                  ejJ                  f   Z&i Z'e&e(d<   ejJ                  jR                  fde*dejJ                  fdZ+dejJ                  fdZ,y)    N)
namedtuple)Executor)partial)strerror)Path)Any	AwaitableBinaryIOCallableDict	GeneratorOptionalTextIOTypeVarUnioncast)finalize)AsyncioContextBase_TFileModereadablewritableplus	appendingcreatedflagsbinarymodereturnc           	         t         j                  }d}d}d}d}d}d}d}| D ]  }	|	dk(  r*d}d}d}|t         j                  t         j                  z  z  }|	dk(  r|rt	        d      d}d}|	dk(  r5|rt	        d      d}d}|t         j                  t         j
                  z  z  }|	dk(  r7|rt	        d      d}d}d}|t         j                  t         j                  z  z  }|	dk(  r|rt	        d      d}d}d}|	d	k(  sd}t        t         d
      s|t         j                  z  } |r|r|t         j                  z  }n)|r|t         j                  z  }n|t         j                  z  }t        |||||||      S )zV Rewritten from `cpython fileno`_

    .. _cpython fileio: https://bit.ly/2JY2cnp
    FxTrzBad modewa+bO_BINARYr   )osO_RDONLYO_EXCLO_CREAT	ExceptionO_TRUNCO_APPENDhasattrr*   O_RDWRO_WRONLYr   )
r!   r   rwar   r   r   r   r   r    ms
             \/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/aiofile/aio.py
parse_moder8   &   s    KKE
CHHDIGF8CGHRYY++E8
++CH8
++CHRZZ"**,,E8
++CHIRZZ"++--E8
++HHD8Fr:&$S V H	     c                   @   e Zd ZU ee   ed<   eed<   eed<   ee   ed<   e	ed<   ded<   	 	 	 d/d	e
eef   ded
edee   dee   f
dZedededd fd       ZdddededdfdZedefd       Zedej*                  fd       Zedefd       Zdee   fdZdefdZd0dZd1dZdefdZdeded f   fdZd0d Z dede!e   fd!Z"d2d"ed#ede
e#ef   fd$Z$d2d"ed#ede#fd%Z%d3d&e
ee#f   d#edefd'Z&d&ede#fd(Z'd&e#defd)Z(d3d&e#d#edefd*Z)d1d+Z*d1d,Z+d3d-ede!d   fd.Z,y)4AIOFile	_file_obj_file_obj_owner	_encoding	_executorr!   z$Optional[asyncio.Future[FileIOType]]_AIOFile__open_resultNfilenameencodingcontextexecutorc                     |xs
 t               | _        d | _        t        |      | _        || _        t        |      | _        d | _        d| _	        || _
        || _        t        j                         | _        d| _        y )NTr   )get_default_context_AIOFile__contextr@   str_fname
_open_moder8   r!   r<   r=   r>   r?   asyncioLock_clone_lock_clones)selfrA   r!   rB   rC   rD   s         r7   __init__zAIOFile.__init__|   sl     !9$7$9!(mt$	#!!"<<>r9   fpkwargsr"   c                      | |j                   |j                  fi |}||_        |j                  |_        d|_        |S )NF)namer!   r<   rJ   r=   )clsrQ   rR   afps       r7   from_fpzAIOFile.from_fp   s:    "''277-f-#
r9   funczCallable[..., _T]argszasyncio.Future[_T]c                 |    | j                   j                  j                  | j                  t	        |g|i |      S N)rG   looprun_in_executorr?   r   )rO   rX   rY   rR   s       r7   _run_in_threadzAIOFile._run_in_thread   s9     ~~""22NNGD:4:6:
 	
r9   c                     | j                   S r[   rI   rO   s    r7   rT   zAIOFile.name   s    {{r9   c                 .    | j                   j                  S r[   )rG   r\   ra   s    r7   r\   zAIOFile.loop   s    ~~"""r9   c                     | j                   S r[   )r>   ra   s    r7   rB   zAIOFile.encoding   s    ~~r9   c                   K   | j                   ,| j                   j                  rt        j                  d      y | j                  tt        d| j                  t        | j                  | j                              | _        | j                   d {   | _         d | _        | j                   j                         S | j                   d {    y 7 ?7 w)NAIOFile closedzasyncio.Future[FileIOType])r<   closedrK   InvalidStateErrorr@   r   r^   openrI   rJ   filenora   s    r7   rh   zAIOFile.open   s     >>%~~$$//0@AA%!%,##D$++tG"D $(#5#55DN!%D>>((**     6 	!s$   BCC9C
CCCc                      d| j                   z  S )Nz<AIOFile: %r>r`   ra   s    r7   __repr__zAIOFile.__repr__   s    ,,r9   c                    K   | j                   4 d{    | xj                  dz  c_        | cddd      d{    S 7 ,7 # 1 d{  7  sw Y   yxY ww)z^Returns self with a ref-count bump; close() is deferred until all
        clones are released.N   )rM   rN   ra   s    r7   clonezAIOFile.clone   s>      ###LLAL $######sA   AA AAAAAAA
AAAc                   K   | j                   | j                  sy | j                  4 d {    | j                  dkD  r'| xj                  dz  c_        	 d d d       d {    y d d d       d {    | j                  j
                  r| j                          d {    | j                  | j                   j                         d {    y 7 7 s7 d# 1 d {  7  sw Y   txY w7 M7 "w)Nr   rm   )	r<   r=   rM   rN   r!   r   fdsyncr^   closera   s    r7   rq   zAIOFile.close   s     >>!)=)=###||a! $####
 99++-!!$.."6"6777 $#####  7st   *C2CC2&CC2!C"C22C3-C2 C.!,C2C0C2C2C2C+C" C+'C20C2c                 x    | j                   t        j                  d      | j                   j                         S )Nre   )r<   rK   rg   ri   ra   s    r7   ri   zAIOFile.fileno   s1    >>!++,<==~~$$&&r9   c              #   ^   K   | j                         j                         E d {    | S 7 wr[   )rh   	__await__ra   s    r7   rt   zAIOFile.__await__   s(     99;((*** 	+s   "-+-c                 B   K   | j                          d {    | S 7 wr[   )rh   ra   s    r7   
__aenter__zAIOFile.__aenter__   s     iik 	s   c                 d    t        j                         j                  | j                               S r[   )rK   get_event_loopcreate_taskrq   )rO   rY   s     r7   	__aexit__zAIOFile.__aexit__   s"    %%'33DJJLAAr9   sizeoffsetc                    K   | j                  ||       d {   }| j                  j                  r|S | j                  |      S 7 -wr[   )
read_bytesr!   r    decode_bytes)rO   r{   r|   datas       r7   readzAIOFile.read   s@     __T622yy''tDT->->t-DD 3s   AA.Ac                 (  K   |dk  rt        d|z        |dk(  r@| j                  t        j                  | j	                                d {   j
                  }| j                  j                  || j	                         |       d {   S 7 A7 w)Nr   zUnsupported value %d for size)
ValueErrorr^   r+   statri   st_sizerG   r   )rO   r{   r|   s      r7   r~   zAIOFile.read_bytes   s     "9<tCDD2:))GGKKM  g  ^^((t{{}fEEE Fs$   A
BB<B	B
BBr   c                   K   | j                   j                  rt        |t              st	        d      |}n,t        |t
              st	        d      | j                  |      }| j                  ||       d {   S 7 w)Nz!Data must be bytes in binary modezData must be str in text mode)r!   r    
isinstancebytesr   rH   encode_byteswrite_bytes)rO   r   r|   
bytes_datas       r7   writezAIOFile.write   sm     99dE* !DEEJdC( !@AA**40J%%j&9999s   A6A?8A=9A?c                 8    |j                  | j                        S r[   )encoder>   rO   r   s     r7   r   zAIOFile.encode_bytes      {{4>>**r9   c                 8    |j                  | j                        S r[   )decoder>   r   s     r7   r   zAIOFile.decode_bytes  r   r9   c                 @  K   t        |      }|dk(  ryd}||k  r| j                  j                  ||d  | j                         ||z          d {   }|dk(  rt	        d| ||      |dk  r#| }t        |t        |      | j                        ||z  }||k  r|S 7 Lw)Nr   zWrite operation returned 0)lenrG   r   ri   RuntimeErrorOSErrorr   rI   )rO   r   r|   	data_sizewrittenreserrnos          r7   r   zAIOFile.write_bytes
  s     I	> 	!,,WXv/? C ax"0$  q eXe_dkkBBsNG 	!" !s   ABBA	BBc                 p   K   | j                   j                  | j                                d {   S 7 wr[   )rG   fsyncri   ra   s    r7   r   zAIOFile.fsync0  s'     ^^))$++-8888   -646c                 p   K   | j                   j                  | j                                d {   S 7 wr[   )rG   rp   ri   ra   s    r7   rp   zAIOFile.fdsync3  s'     ^^**4;;=9999r   lengthc                 `    | j                  t        j                  | j                         |      S r[   )r^   r+   	ftruncateri   )rO   r   s     r7   truncatezAIOFile.truncate6  s&    ""LL$++-
 	
r9   )r%   zutf-8NN)r"   r;   r"   N)r   r   )r   )-__name__
__module____qualname__r   
FileIOType__annotations__boolrH   r   r   r   r   r   rP   classmethodr   rW   r^   propertyrT   rK   AbstractEventLoopr\   rB   intrh   rk   rn   rq   ri   r   rt   rv   r	   rz   r   r   r~   r   r   r   r   r   rp   r    r9   r7   r;   r;   t   sV   
##N!!
N99 *104'+	c4i(#& ,- 8$	*  s y  
+
47
CF
	
 c   #g// # # #  HSM $-# -8' '
9T3	%9: Bs By~ BEs E EU5#:=N EFS Fs F5 F
:c5j 1 
:3 
:s 
:+ + ++ +3 +$e $S $ $L9:
s 
9T? 
r9   r;   DEFAULT_CONTEXT_STOREmax_requestsc                     t        j                         t        j                  |       dfd}t	        |       t
        <   S )N)r\   c                  R     j                          t        j                  d        y r[   )rq   r   pop)rC   r\   s   r7   	finalizerz!create_context.<locals>.finalizerF  s    !!$-r9   r   )rK   rx   caioAsyncioContextr   r   )r   r   rC   r\   s     @@r7   create_contextr   @  sF     !!#D!!,T:G. T9")$Nr9   c                  p    t        j                         } t        j                  |       }||S t	               S r[   )rK   rx   r   getr   )r\   rC   s     r7   rF   rF   O  s4    !!#D#''-Gr9   )-rK   r+   collectionsr   concurrent.futuresr   	functoolsr   r   pathlibr   typingr   r	   r
   r   r   r   r   r   r   r   r   weakrefr   r   caio.asyncio_baser   r   AIO_FILE_NOT_OPENEDAIO_FILE_CLOSEDr   r   rH   r8   r;   r   r   ContextStoreTyper   r   MAX_REQUESTS_DEFAULTr   r   rF   r   r9   r7   <module>r      s     	 " '         0 T] 68#$
 
KS KX K\E
 E
P 1143F3FFG *, ' , ++@@	T00 r9   