
    vKgN<                       % S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	J
r
JrJrJrJrJrJr  S SKrSSKJr  SSKJr  \(       a  S SKJrJrJrJrJrJr  S S	KJr  1 S
krS\ S'   1 Skr!S\ S'   \" S5      r"\" SSS9r#\" S5      r$\" SSS9r%\" SSS9r&\" S\'\(SS9r)\" S\'\(SS9r*\(       Ga  S SKJ+r+J,r,   " S S\,5      r- " S S\,5      r. " S S\,5      r/ " S  S!\,5      r0 " S" S#\,5      r1 " S$ S%\,\%   5      r2 " S& S'\,5      r3 " S( S)\,5      r4 " S* S+\,5      r5 " S, S-\,5      r6 " S. S/\,5      r7 " S0 S1\,5      r8 " S2 S3\,5      r9 " S4 S5\,5      r: " S6 S7\,5      r; " S8 S9\,\)   5      r< " S: S;\,5      r= " S< S=\,5      r> " S> S?\,\)   5      r? " S@ SA\,5      r@ " SB SC\,\)   5      rA " SD SE\,5      rB " SF SG\,5      rC " SH SI\,\)   5      rD " SJ SK\,\	   5      rE " SL SM\,5      rF " SN SO\,5      rG " SP SQ\,5      rH " SR SS\,\&   5      rI " ST SU\,\&   5      rJ " SV SW\,\)   5      rK " SX SY\,\%   5      rL " SZ S[\,5      rM " S\ S]\\\#   5      rN\S^\O4   rP\\'\O/\O4   rQ\       Sh                 SiS_ jj5       rR\     Sj                 SkS` jj5       rR\      Sl                 SmSa jj5       rR\      Sl                 SnSb jj5       rR\      Sl                 SoSc jj5       rR\     Sj                 SpSd jj5       rR\      Sl                 SqSe jj5       rR       Sh                 SrSf jjrRSsSg jrSg)t    )annotationsN)partial)IOTYPE_CHECKINGAnyAnyStrBinaryIOCallableGenericIterableTypeVarUnionoverload   )async_wraps)AsyncResource)OpenBinaryModeOpenBinaryModeReadingOpenBinaryModeUpdatingOpenBinaryModeWritingOpenTextModeStrOrBytesPath)Literal>   rawmodenamebufferclosederrorsfilenoisattyclosefdencodinggetvaluenewlinesreadableseekablewritable	getbufferline_bufferingzset[str]_FILE_SYNC_ATTRS>   peekreadseektellflushread1writereadallreadintoreadlinetruncate	readinto1	readlines
writelines_FILE_ASYNC_METHODSFileTFileT_coT)	covariantTT_coT_contra)contravariant	AnyStr_coAnyStr_contra)BufferProtocolc                  (    \ rS rSr\SS j5       rSrg)
_HasClosedg   c                    g N selfs    M/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/_file_io.pyr   _HasClosed.closedh   s    "%    rK   Nreturnbool)__name__
__module____qualname____firstlineno__propertyr   __static_attributes__rK   rP   rN   rG   rG   g   s    	% 
%rP   rG   c                  (    \ rS rSr\SS j5       rSrg)_HasEncodingk   c                    g rJ   rK   rL   s    rN   r#   _HasEncoding.encodingl       #&rP   rK   NrR   str)rT   rU   rV   rW   rX   r#   rY   rK   rP   rN   r[   r[   k       	& 
&rP   r[   c                  (    \ rS rSr\SS j5       rSrg)
_HasErrorso   c                    g rJ   rK   rL   s    rN   r   _HasErrors.errorsp   s    (+rP   rK   N)rR   
str | None)rT   rU   rV   rW   rX   r   rY   rK   rP   rN   rd   rd   o   s    	+ 
+rP   rd   c                      \ rS rSrSS jrSrg)
_HasFileNos   c                    g rJ   rK   rL   s    rN   r    _HasFileNo.filenot       rP   rK   NrR   int)rT   rU   rV   rW   r    rY   rK   rP   rN   rj   rj   s       $rP   rj   c                      \ rS rSrSS jrSrg)
_HasIsATTYv   c                    g rJ   rK   rL   s    rN   r!   _HasIsATTY.isattyw       #rP   rK   NrQ   )rT   rU   rV   rW   r!   rY   rK   rP   rN   rs   rs   v   s    %rP   rs   c                  (    \ rS rSr\SS j5       rSrg)_HasNewlinesy   c                    g rJ   rK   rL   s    rN   r%   _HasNewlines.newlines{   s    $'rP   rK   NrR   r?   )rT   rU   rV   rW   rX   r%   rY   rK   rP   rN   ry   ry   y   s    	' 
'rP   ry   c                      \ rS rSrSS jrSrg)_HasReadable~   c                    g rJ   rK   rL   s    rN   r&   _HasReadable.readable       CrP   rK   NrQ   )rT   rU   rV   rW   r&   rY   rK   rP   rN   r   r   ~       'rP   r   c                      \ rS rSrSS jrSrg)_HasSeekable   c                    g rJ   rK   rL   s    rN   r'   _HasSeekable.seekable   r   rP   rK   NrQ   )rT   rU   rV   rW   r'   rY   rK   rP   rN   r   r      r   rP   r   c                      \ rS rSrSS jrSrg)_HasWritable   c                    g rJ   rK   rL   s    rN   r(   _HasWritable.writable   r   rP   rK   NrQ   )rT   rU   rV   rW   r(   rY   rK   rP   rN   r   r      r   rP   r   c                  (    \ rS rSr\SS j5       rSrg)
_HasBuffer   c                    g rJ   rK   rL   s    rN   r   _HasBuffer.buffer   s    &)rP   rK   N)rR   r	   )rT   rU   rV   rW   rX   r   rY   rK   rP   rN   r   r      s    	) 
)rP   r   c                  (    \ rS rSr\SS j5       rSrg)_HasRaw   c                    g rJ   rK   rL   s    rN   r   _HasRaw.raw   s    '*rP   rK   N)rR   io.RawIOBase)rT   rU   rV   rW   rX   r   rY   rK   rP   rN   r   r      s    	* 
*rP   r   c                  (    \ rS rSr\SS j5       rSrg)_HasLineBuffering   c                    g rJ   rK   rL   s    rN   r*    _HasLineBuffering.line_buffering   s    *-rP   rK   NrQ   )rT   rU   rV   rW   rX   r*   rY   rK   rP   rN   r   r      s    	- 
-rP   r   c                  (    \ rS rSr\SS j5       rSrg)_HasCloseFD   c                    g rJ   rK   rL   s    rN   r"   _HasCloseFD.closefd   r_   rP   rK   NrQ   )rT   rU   rV   rW   rX   r"   rY   rK   rP   rN   r   r      rb   rP   r   c                  (    \ rS rSr\SS j5       rSrg)_HasName   c                    g rJ   rK   rL   s    rN   r   _HasName.name       "rP   rK   Nr`   )rT   rU   rV   rW   rX   r   rY   rK   rP   rN   r   r          	" 
"rP   r   c                  (    \ rS rSr\SS j5       rSrg)_HasMode   c                    g rJ   rK   rL   s    rN   r   _HasMode.mode   r   rP   rK   Nr`   )rT   rU   rV   rW   rX   r   rY   rK   rP   rN   r   r      r   rP   r   c                      \ rS rSrSS jrSrg)_CanGetValue   c                    g rJ   rK   rL   s    rN   r$   _CanGetValue.getvalue   s    rP   rK   NrR   rB   )rT   rU   rV   rW   r$   rY   rK   rP   rN   r   r      s    ,rP   r   c                      \ rS rSrSS jrSrg)_CanGetBuffer   c                    g rJ   rK   rL   s    rN   r)   _CanGetBuffer.getbuffer   s    3rP   rK   N)rR   
memoryview)rT   rU   rV   rW   r)   rY   rK   rP   rN   r   r      s    .rP   r   c                      \ rS rSrSS jrSrg)	_CanFlush   c                    g rJ   rK   rL   s    rN   r0   _CanFlush.flush   rn   rP   rK   NrR   None)rT   rU   rV   rW   r0   rY   rK   rP   rN   r   r      rq   rP   r   c                  "    \ rS rSrSSS jjrSrg)_CanRead   c                   g rJ   rK   rM   sizes     rN   r-   _CanRead.read       rP   rK   N.)r   
int | NonerR   rB   )rT   rU   rV   rW   r-   rY   rK   rP   rN   r   r          CCrP   r   c                  "    \ rS rSrSSS jjrSrg)	_CanRead1   c                   g rJ   rK   r   s     rN   r1   _CanRead1.read1       SrP   rK   Nr   )r   r   rR   bytes)rT   rU   rV   rW   r1   rY   rK   rP   rN   r   r          @@rP   r   c                      \ rS rSrSS jrSrg)_CanReadAll   c                    g rJ   rK   rL   s    rN   r3   _CanReadAll.readall   s    rP   rK   Nr   )rT   rU   rV   rW   r3   rY   rK   rP   rN   r   r      s    +rP   r   c                      \ rS rSrSS jrSrg)_CanReadInto   c                   g rJ   rK   rM   bufs     rN   r4   _CanReadInto.readinto   s    #rP   rK   N)r   rD   rR   r   )rT   rU   rV   rW   r4   rY   rK   rP   rN   r   r      s    =rP   r   c                      \ rS rSrSS jrSrg)_CanReadInto1   c                   g rJ   rK   rM   r   s     rN   r7   _CanReadInto1.readinto1       srP   rK   N)r   rD   rR   rp   )rT   rU   rV   rW   r7   rY   rK   rP   rN   r   r      s    :rP   r   c                  "    \ rS rSrSSS jjrSrg)_CanReadLine   c                   g rJ   rK   r   s     rN   r5   _CanReadLine.readline   r   rP   rK   Nr   r   rp   rR   rB   )rT   rU   rV   rW   r5   rY   rK   rP   rN   r   r      r   rP   r   c                  "    \ rS rSrSSS jjrSrg)_CanReadLines   c                   g rJ   rK   )rM   hints     rN   r8   _CanReadLines.readlines   s    rP   rK   Nr   )r   rp   rR   list[AnyStr])rT   rU   rV   rW   r8   rY   rK   rP   rN   r   r      s    DDrP   r   c                  "    \ rS rSrSSS jjrSrg)_CanSeek   c                   g rJ   rK   rM   targetwhences      rN   r.   _CanSeek.seek   r   rP   rK   Nr   )r   rp   r   rp   rR   rp   )rT   rU   rV   rW   r.   rY   rK   rP   rN   r   r      r   rP   r   c                      \ rS rSrSS jrSrg)_CanTell   c                    g rJ   rK   rL   s    rN   r/   _CanTell.tell   s    srP   rK   Nro   )rT   rU   rV   rW   r/   rY   rK   rP   rN   r   r      s    "rP   r   c                  "    \ rS rSrSSS jjrSrg)_CanTruncate   c                   g rJ   rK   r   s     rN   r6   _CanTruncate.truncate       crP   rK   Nr   )r   r   rR   rp   )rT   rU   rV   rW   r6   rY   rK   rP   rN   r  r     s    AArP   r  c                      \ rS rSrSS jrSrg)	_CanWrite   c                   g rJ   rK   rM   datas     rN   r2   _CanWrite.write   s    3rP   rK   N)r  r@   rR   rp   )rT   rU   rV   rW   r2   rY   rK   rP   rN   r  r     s    6rP   r  c                      \ rS rSrSS jrSrg)_CanWriteLines   c                   g rJ   rK   rM   liness     rN   r9   _CanWriteLines.writelines   s    CrP   rK   N)r  zIterable[T_contra]rR   r   )rT   rU   rV   rW   r9   rY   rK   rP   rN   r  r     s    GrP   r  c                  "    \ rS rSrSSS jjrSrg)_CanPeek   c                   g rJ   rK   r   s     rN   r,   _CanPeek.peek   r   rP   rK   Nr   r   )rT   rU   rV   rW   r,   rY   rK   rP   rN   r  r     s    ::rP   r  c                      \ rS rSrSS jrSrg)
_CanDetach   c                    g rJ   rK   rL   s    rN   detach_CanDetach.detach   rw   rP   rK   Nr}   )rT   rU   rV   rW   r!  rY   rK   rP   rN   r  r     s    %rP   r  c                      \ rS rSrSS jrSrg)	_CanClose   c                    g rJ   rK   rL   s    rN   close_CanClose.close   rn   rP   rK   Nr   )rT   rU   rV   rW   r'  rY   rK   rP   rN   r$  r$     rq   rP   r$  c                  Z  ^  \ rS rSrSrS+S jr\S,S j5       r\(       d  S-S jr	S.U 4S jjr
S/S jrS0S jrS1S	 jrS2S
 jr\(       a  \S3S j5       r\S4S j5       r\S5S j5       r\S6S j5       r\S7S j5       r\S8S j5       r\S9S j5       r\S:S j5       r\S;S j5       r\S<S j5       rS=S jrS>S jrS?S jrS@S jrSAS jrSBS jrSCS jrSDS jr SESFS jjr!SESGS jjr"SHS jr#SIS  jr$SESJS! jjr%SKS" jr&SLSMS# jjr'SNS$ jr(SOSPS% jjr)SQS& jr*SRS' jr+SSS( jr,SLSTS) jjr-S*r.U =r/$ S*r.U =r/$ )UAsyncIOWrapper   a1  A generic :class:`~io.IOBase` wrapper that implements the :term:`asynchronous
file object` interface. Wrapped methods that could block are executed in
:meth:`trio.to_thread.run_sync`.

All properties and methods defined in :mod:`~io` are exposed by this
wrapper, if they exist in the wrapped file object.
c                    Xl         g rJ   _wrapped)rM   files     rN   __init__AsyncIOWrapper.__init__   s    rP   c                    U R                   $ )z.object: A reference to the wrapped file objectr-  rL   s    rN   wrappedAsyncIOWrapper.wrapped   s     }}rP   c                  ^ U[         ;   a  [        U R                  U5      $ U[        ;   aX  [        U R                  U5      m[	        U R
                  U R                  R
                  U5      U4S j5       n[        XU5        U$ [        U5      e)Nc                 |   >#    [        T/U Q70 UD6n[        R                  R                  U5      I S h  vN $  N7frJ   )r   trio	to_threadrun_sync)argskwargsfuncmeths      rN   wrapper+AsyncIOWrapper.__getattr__.<locals>.wrapper   s5     "49$9&9D!%!8!8!>>>>s   2<:<)r+   getattrr.  r:   r   	__class__setattrAttributeError)rM   r   r>  r=  s      @rN   __getattr__AsyncIOWrapper.__getattr__   s|    ''t}}d33**t}}d3T^^T]]-D-DdK? L?
 G, &&rP   c                   >^  [        [        TT ]	  5       5      nUR                  U 4S j[         5       5        UR                  U 4S j[
         5       5        U$ )Nc              3  `   >#    U H$  n[        TR                  U5      (       d  M   Uv   M&     g 7frJ   hasattrr3  .0arM   s     rN   	<genexpr>)AsyncIOWrapper.__dir__.<locals>.<genexpr>  s"     M 01GDLL!4LQQ 0   .	.c              3  `   >#    U H$  n[        TR                  U5      (       d  M   Uv   M&     g 7frJ   rH  rJ  s     rN   rM  rN    s"     P 31wt||Q7OQQ 3rO  )setsuper__dir__updater+   r:   )rM   attrsrA  s   ` rN   rS  AsyncIOWrapper.__dir__   s?    EGO%&M 0MMP 3PPrP   c                    U $ rJ   rK   rL   s    rN   	__aiter__AsyncIOWrapper.__aiter__  s    rP   c                \   #    U R                  5       I S h  vN nU(       a  U$ [        e N7frJ   )r5   StopAsyncIteration)rM   lines     rN   	__anext__AsyncIOWrapper.__anext__  s&     ]]_$K$$	 %s   ,*,c                   #    [         R                  R                  U R                  R                  5      I Sh  vN n[        U5      $  N7f)zLike :meth:`io.BufferedIOBase.detach`, but async.

This also re-wraps the result in a new :term:`asynchronous file object`
wrapper.

N)r7  r8  r9  r.  r!  	wrap_file)rM   r   s     rN   r!  AsyncIOWrapper.detach  s8      NN++DMM,@,@AA~ Bs   7AA	Ac                2  #    [         R                  " SS9   [         R                  R                  U R                  R
                  5      I Sh  vN   SSS5        [         R                  R                  5       I Sh  vN   g N3! , (       d  f       N7= f N7f)zLike :meth:`io.IOBase.close`, but async.

This is also shielded from cancellation; if a cancellation scope is
cancelled, the wrapped file object will still be safely closed.

T)shieldN)r7  CancelScoper8  r9  r.  r'  lowlevelcheckpoint_if_cancelledrL   s    rN   acloseAsyncIOWrapper.aclose  sg      T*..))$--*=*=>>> + mm33555 ? +* 	6s:   B7BBB)B<B=BB
BBc                    g rJ   rK   rL   s    rN   r   AsyncIOWrapper.closed+  s    >ArP   c                    g rJ   rK   rL   s    rN   r#   AsyncIOWrapper.encoding-  s    ADrP   c                    g rJ   rK   rL   s    rN   r   AsyncIOWrapper.errors/  s    DGrP   c                    g rJ   rK   rL   s    rN   r%   AsyncIOWrapper.newlines1      BErP   c                    g rJ   rK   rL   s    rN   r   AsyncIOWrapper.buffer3  rq  rP   c                    g rJ   rK   rL   s    rN   r   AsyncIOWrapper.raw5      @CrP   c                    g rJ   rK   rL   s    rN   r*   AsyncIOWrapper.line_buffering7  s    LOrP   c                    g rJ   rK   rL   s    rN   r"   AsyncIOWrapper.closefd9  rv  rP   c                    g rJ   rK   rL   s    rN   r   AsyncIOWrapper.name;      9<rP   c                    g rJ   rK   rL   s    rN   r   AsyncIOWrapper.mode=  r}  rP   c                    g rJ   rK   rL   s    rN   r    AsyncIOWrapper.fileno@  r   rP   c                    g rJ   rK   rL   s    rN   r!   AsyncIOWrapper.isattyA  r	  rP   c                    g rJ   rK   rL   s    rN   r&   AsyncIOWrapper.readableB      #rP   c                    g rJ   rK   rL   s    rN   r'   AsyncIOWrapper.seekableC  r  rP   c                    g rJ   rK   rL   s    rN   r(   AsyncIOWrapper.writableD  r  rP   c                    g rJ   rK   rL   s    rN   r$   AsyncIOWrapper.getvalueE  s    CrP   c                    g rJ   rK   rL   s    rN   r)   AsyncIOWrapper.getbufferF  s    #rP   c                   #    g 7frJ   rK   rL   s    rN   r0   AsyncIOWrapper.flushG  s     #   c                  #    g 7frJ   rK   r   s     rN   r-   AsyncIOWrapper.readH  s     dgr  c                  #    g 7frJ   rK   r   s     rN   r1   AsyncIOWrapper.read1I  s     ]`r  c                   #    g 7frJ   rK   rL   s    rN   r3   AsyncIOWrapper.readallJ       PSr  c                  #    g 7frJ   rK   r   s     rN   r4   AsyncIOWrapper.readintoK  s     ^ar  c                  #    g 7frJ   rK   r   s     rN   r5   AsyncIOWrapper.readlineL  s     ehr  c                   #    g 7frJ   rK   rL   s    rN   r8   AsyncIOWrapper.readlinesM  s     Z]r  c                  #    g 7frJ   rK   r   s      rN   r.   AsyncIOWrapper.seekN  s     `cr  c                   #    g 7frJ   rK   rL   s    rN   r/   AsyncIOWrapper.tellO  s     sr  c                  #    g 7frJ   rK   r   s     rN   r6   AsyncIOWrapper.truncateP  s     cfr  c                  #    g 7frJ   rK   r  s     rN   r2   AsyncIOWrapper.writeQ  r  r  c                  #    g 7frJ   rK   r  s     rN   r9   AsyncIOWrapper.writelinesR  s     fir  c                  #    g 7frJ   rK   r   s     rN   r7   AsyncIOWrapper.readinto1S       \_r  c                  #    g 7frJ   rK   r   s     rN   r,   AsyncIOWrapper.peekT  r  r  r-  )r/  r<   rR   r   )rR   r<   )r   ra   rR   object)rR   zIterable[str])rR   zAsyncIOWrapper[FileT_co])rM   $AsyncIOWrapper[_CanReadLine[AnyStr]]rR   r   )rM   zAsyncIOWrapper[_CanDetach[T]]rR   zAsyncIOWrapper[T])rM   zAsyncIOWrapper[_CanClose]rR   r   )rM   zAsyncIOWrapper[_HasClosed]rR   rS   )rM   zAsyncIOWrapper[_HasEncoding]rR   ra   )rM   zAsyncIOWrapper[_HasErrors]rR   rh   )rM   zAsyncIOWrapper[_HasNewlines[T]]rR   r>   )rM   zAsyncIOWrapper[_HasBuffer]rR   r	   )rM   zAsyncIOWrapper[_HasRaw]rR   r   )rM   z!AsyncIOWrapper[_HasLineBuffering]rR   rp   )rM   zAsyncIOWrapper[_HasCloseFD]rR   rS   )rM   zAsyncIOWrapper[_HasName]rR   ra   )rM   zAsyncIOWrapper[_HasMode]rR   ra   )rM   zAsyncIOWrapper[_HasFileNo]rR   rp   )rM   zAsyncIOWrapper[_HasIsATTY]rR   rS   )rM   zAsyncIOWrapper[_HasReadable]rR   rS   )rM   zAsyncIOWrapper[_HasSeekable]rR   rS   )rM   zAsyncIOWrapper[_HasWritable]rR   rS   )rM   z$AsyncIOWrapper[_CanGetValue[AnyStr]]rR   r   )rM   zAsyncIOWrapper[_CanGetBuffer]rR   r   )rM   zAsyncIOWrapper[_CanFlush]rR   r   ))rM   z AsyncIOWrapper[_CanRead[AnyStr]]r   r   rR   r   )rM   zAsyncIOWrapper[_CanRead1]r   r   rR   r   )rM   z#AsyncIOWrapper[_CanReadAll[AnyStr]]rR   r   )rM   zAsyncIOWrapper[_CanReadInto]r   rD   rR   r   )rM   r  r   rp   rR   r   )rM   z%AsyncIOWrapper[_CanReadLines[AnyStr]]rR   r   r   )rM   zAsyncIOWrapper[_CanSeek]r   rp   r   rp   rR   rp   )rM   zAsyncIOWrapper[_CanTell]rR   rp   rJ   )rM   zAsyncIOWrapper[_CanTruncate]r   r   rR   rp   )rM   zAsyncIOWrapper[_CanWrite[T]]r  r>   rR   rp   )rM   z!AsyncIOWrapper[_CanWriteLines[T]]r  zIterable[T]rR   r   )rM   zAsyncIOWrapper[_CanReadInto1]r   rD   rR   rp   )rM   z AsyncIOWrapper[_CanPeek[AnyStr]]r   rp   rR   r   )0rT   rU   rV   rW   __doc__r0  rX   r3  r   rD  rS  rX  r]  r!  rg  r   r#   r   r%   r   r   r*   r"   r   r   r    r!   r&   r'   r(   r$   r)   r0   r-   r1   r3   r4   r5   r8   r.   r/   r6   r2   r9   r7   r,   rY   __classcell__)rA  s   @rN   r*  r*     s     
 	'"%	6  
A 
A	D 
D	G 
G	E 
E	E 
E	C 
C	O 
O	C 
C	< 
<	< 
<@AEEEOMEg`Sah]cBfSi___Y rP   r*  r   c                   #    g 7frJ   rK   r/  r   	bufferingr#   r   newliner"   openers           rN   	open_filer  \  s
      (+r  c                   #    g 7frJ   rK   r  s           rN   r  r  i  s
      !$r  c                   #    g 7frJ   rK   r  s           rN   r  r  v  
      ),r  c                   #    g 7frJ   rK   r  s           rN   r  r    r  r  c                   #    g 7frJ   rK   r  s           rN   r  r    r  r  c                   #    g 7frJ   rK   r  s           rN   r  r    s
       #r  c                   #    g 7frJ   rK   r  s           rN   r  r    s
      "r  c                   #    [        [        R                  R                  [        R
                  U UUUUUUU5	      I Sh  vN 5      nU$  N
7f)a   Asynchronous version of :func:`open`.

Returns:
    An :term:`asynchronous file object`

Example::

    async with await trio.open_file(filename) as f:
        async for line in f:
            pass

    assert f.closed

See also:
  :func:`trio.Path.open`

N)r`  r7  r8  r9  ioopen)	r/  r   r  r#   r   r  r"   r  _files	            rN   r  r    sS     6 nn%%GG

 
	
E L
	
s   >A AAc                   ^  SU 4S jjnU" S5      (       a  U" S5      (       d  U" S5      (       d  [        T  S35      e[        T 5      $ )a7  This wraps any file object in a wrapper that provides an asynchronous
file object interface.

Args:
    file: a :term:`file object`

Returns:
    An :term:`asynchronous file object` that wraps ``file``

Example::

    async_file = trio.wrap_file(StringIO('asdf'))

    assert await async_file.read() == 'asdf'

c                T   > [        TU 5      =(       a    [        [        TU 5      5      $ rJ   )rI  callabler@  )attrr/  s    rN   haswrap_file.<locals>.has  s!    tT"Dxd0C'DDrP   r'  r-   r2   zI does not implement required duck-file methods: close and (read or write))r  ra   rR   rS   )	TypeErrorr*  )r/  r  s   ` rN   r`  r`    sM    $E LLc&kkS\\f ( (
 	

 $rP   )rr  NNNTN)r/  	_OpenFiler   r   r  rp   r#   rh   r   rh   r  rh   r"   rS   r  _Opener | NonerR   z AsyncIOWrapper[io.TextIOWrapper])NNNTN)r/  r  r   r   r  z
Literal[0]r#   r   r   r   r  r   r"   rS   r  r  rR   zAsyncIOWrapper[io.FileIO])r  NNNTN)r/  r  r   r   r  Literal[-1, 1]r#   r   r   r   r  r   r"   rS   r  r  rR   z!AsyncIOWrapper[io.BufferedRandom])r/  r  r   r   r  r  r#   r   r   r   r  r   r"   rS   r  r  rR   z!AsyncIOWrapper[io.BufferedWriter])r/  r  r   r   r  r  r#   r   r   r   r  r   r"   rS   r  r  rR   z!AsyncIOWrapper[io.BufferedReader])r/  r  r   r   r  rp   r#   r   r   r   r  r   r"   rS   r  r  rR   zAsyncIOWrapper[BinaryIO])r/  r  r   ra   r  rp   r#   rh   r   rh   r  rh   r"   rS   r  r  rR   zAsyncIOWrapper[IO[Any]])r/  r  r   ra   r  rp   r#   rh   r   rh   r  rh   r"   rS   r  r  rR   zAsyncIOWrapper[Any])r/  r;   rR   zAsyncIOWrapper[FileT])T
__future__r   r  	functoolsr   typingr   r   r   r   r	   r
   r   r   r   r   r   r7  _utilr   abcr   	_typeshedr   r   r   r   r   r   typing_extensionsr   r+   __annotations__r:   r;   r<   r>   r?   r@   ra   r   rB   rC   rD   rE   rG   r[   rd   rj   rs   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r$  r*  rp   r  _Openerr  r`  rK   rP   rN   <module>r     s   " 	         * ( ,! X & 	:.CLv&:T2Ket<	e4H 2&X &'x ',X ,%X %&X &(x~ (
(x ((x ((x (*X *+( +.H .'h '#8 ##8 #-x	* -/ /%H %D8I& DAH A,hy) ,>x >; ;Ax	* AE( ED8 D#8 #Bx B7HX& 7H(+ H;8I& ;&Xd^ &%H %z`]GH$5 z`| "C'(	
C:s?
# 
 !	+
	+
	+ 	+ 		+
 	+ 	+ 	+ 	+ &	+ 
	+ 

 !	$
	$
	$ 	$ 		$
 	$ 	$ 	$ 	$ 	$ 
	$ 
 !#!	,
	,
 	, 	, 		,
 	, 	, 	, 	, '	, 
	, 
 !#!	,
	,
	, 	, 		,
 	, 	, 	, 	, '	, 
	, 
 !#!	,
	,
	, 	, 		,
 	, 	, 	, 	, '	, 
	, 

 !	#
	#
	# 	# 		#
 	# 	# 	# 	# 	# 
	# 
 !	"
	"
	" 	" 		"
 	" 	" 	" 	" 	" 
	" !(
(
( ( 	(
 ( ( ( ( (V rP   