
     f;                    .   U d dl mZ d dl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ZddlmZ ddlmZ erd dlmZmZmZmZmZmZ d d	lmZ h d
Zde d<   h dZ!de d<    ed          Z" edd          Z# ed          Z$ edd          Z% edd          Z& ede'e(d          Z) ede'e(d          Z*erd dlm+Z+m,Z,  G d de,          Z- G d de,          Z. G d de,          Z/ G d  d!e,          Z0 G d" d#e,          Z1 G d$ d%e,e%                   Z2 G d& d'e,          Z3 G d( d)e,          Z4 G d* d+e,          Z5 G d, d-e,          Z6 G d. d/e,          Z7 G d0 d1e,          Z8 G d2 d3e,          Z9 G d4 d5e,          Z: G d6 d7e,          Z; G d8 d9e,e)                   Z< G d: d;e,          Z= G d< d=e,          Z> G d> d?e,e)                   Z? G d@ dAe,          Z@ G dB dCe,e)                   ZA G dD dEe,          ZB G dF dGe,          ZC G dH dIe,e)                   ZD G dJ dKe,e	                   ZE G dL dMe,          ZF G dN dOe,          ZG G dP dQe,          ZH G dR dSe,e&                   ZI G dT dUe,e&                   ZJ G dV dWe,e)                   ZK G dX dYe,e%                   ZL G dZ d[e,          ZM G d\ d]eee#                   ZNed^eOf         ZPee'eOgeOf         ZQe	 	 	 	 	 	 	 dddq            ZRe	 	 	 	 	 dddv            ZRe	 	 	 	 	 	 dddz            ZRe	 	 	 	 	 	 ddd}            ZRe	 	 	 	 	 	 ddd            ZRe	 	 	 	 	 ddd            ZRe	 	 	 	 	 	 ddd            ZR	 	 	 	 	 	 	 dddZRddZSdS )    )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                  &    e Zd Zedd            ZdS )
_HasClosedreturnboolc                    d S N selfs    P/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_file_io.pyr   z_HasClosed.closedh   s    "%#    NrH   rI   )__name__
__module____qualname__propertyr   rL   rP   rO   rG   rG   g   s&        	%%% 
%%%rP   rG   c                  &    e Zd Zedd            ZdS )_HasEncodingrH   strc                    d S rK   rL   rM   s    rO   r#   z_HasEncoding.encodingl       #&3rP   NrH   rX   )rR   rS   rT   rU   r#   rL   rP   rO   rW   rW   k   &        	&&& 
&&&rP   rW   c                  &    e Zd Zedd            ZdS )
_HasErrorsrH   
str | Nonec                    d S rK   rL   rM   s    rO   r   z_HasErrors.errorsp   s    (+rP   N)rH   r_   )rR   rS   rT   rU   r   rL   rP   rO   r^   r^   o   s&        	+++ 
+++rP   r^   c                      e Zd ZddZdS )
_HasFileNorH   intc                    d S rK   rL   rM   s    rO   r    z_HasFileNo.filenot         rP   NrH   rc   )rR   rS   rT   r    rL   rP   rO   rb   rb   s           $$$$$$rP   rb   c                      e Zd ZddZdS )
_HasIsATTYrH   rI   c                    d S rK   rL   rM   s    rO   r!   z_HasIsATTY.isattyw   re   rP   NrQ   )rR   rS   rT   r!   rL   rP   rO   ri   ri   v   s        %%%%%%rP   ri   c                  &    e Zd Zedd            ZdS )_HasNewlinesrH   r?   c                    d S rK   rL   rM   s    rO   r%   z_HasNewlines.newlines{   s    $'CrP   NrH   r?   )rR   rS   rT   rU   r%   rL   rP   rO   rl   rl   y   s&        	''' 
'''rP   rl   c                      e Zd ZddZdS )_HasReadablerH   rI   c                    d S rK   rL   rM   s    rO   r&   z_HasReadable.readable   re   rP   NrQ   )rR   rS   rT   r&   rL   rP   rO   rp   rp   ~           ''''''rP   rp   c                      e Zd ZddZdS )_HasSeekablerH   rI   c                    d S rK   rL   rM   s    rO   r'   z_HasSeekable.seekable   re   rP   NrQ   )rR   rS   rT   r'   rL   rP   rO   rt   rt      rr   rP   rt   c                      e Zd ZddZdS )_HasWritablerH   rI   c                    d S rK   rL   rM   s    rO   r(   z_HasWritable.writable   re   rP   NrQ   )rR   rS   rT   r(   rL   rP   rO   rw   rw      rr   rP   rw   c                  &    e Zd Zedd            ZdS )
_HasBufferrH   r	   c                    d S rK   rL   rM   s    rO   r   z_HasBuffer.buffer   s    &)crP   N)rH   r	   )rR   rS   rT   rU   r   rL   rP   rO   rz   rz      s&        	))) 
)))rP   rz   c                  &    e Zd Zedd            ZdS )_HasRawrH   io.RawIOBasec                    d S rK   rL   rM   s    rO   r   z_HasRaw.raw   s    '*srP   N)rH   r~   )rR   rS   rT   rU   r   rL   rP   rO   r}   r}      s&        	*** 
***rP   r}   c                  &    e Zd Zedd            ZdS )_HasLineBufferingrH   rI   c                    d S rK   rL   rM   s    rO   r*   z _HasLineBuffering.line_buffering   s    *-#rP   NrQ   )rR   rS   rT   rU   r*   rL   rP   rO   r   r      s&        	--- 
---rP   r   c                  &    e Zd Zedd            ZdS )_HasCloseFDrH   rI   c                    d S rK   rL   rM   s    rO   r"   z_HasCloseFD.closefd   rZ   rP   NrQ   )rR   rS   rT   rU   r"   rL   rP   rO   r   r      r\   rP   r   c                  &    e Zd Zedd            ZdS )_HasNamerH   rX   c                    d S rK   rL   rM   s    rO   r   z_HasName.name       "srP   Nr[   )rR   rS   rT   rU   r   rL   rP   rO   r   r      &        	""" 
"""rP   r   c                  &    e Zd Zedd            ZdS )_HasModerH   rX   c                    d S rK   rL   rM   s    rO   r   z_HasMode.mode   r   rP   Nr[   )rR   rS   rT   rU   r   rL   rP   rO   r   r      r   rP   r   c                      e Zd ZddZdS )_CanGetValuerH   rB   c                    d S rK   rL   rM   s    rO   r$   z_CanGetValue.getvalue   re   rP   NrH   rB   )rR   rS   rT   r$   rL   rP   rO   r   r      s        ,,,,,,rP   r   c                      e Zd ZddZdS )_CanGetBufferrH   
memoryviewc                    d S rK   rL   rM   s    rO   r)   z_CanGetBuffer.getbuffer   re   rP   N)rH   r   )rR   rS   rT   r)   rL   rP   rO   r   r      s        ......rP   r   c                      e Zd ZddZdS )	_CanFlushrH   Nonec                    d S rK   rL   rM   s    rO   r0   z_CanFlush.flush   re   rP   NrH   r   )rR   rS   rT   r0   rL   rP   rO   r   r      rg   rP   r   c                      e Zd Zdd	dZdS )
_CanRead.size
int | NonerH   rB   c                   d S rK   rL   rN   r   s     rO   r-   z_CanRead.read   re   rP   N.)r   r   rH   rB   )rR   rS   rT   r-   rL   rP   rO   r   r              CCCCCCCrP   r   c                      e Zd Zdd	dZdS )
	_CanRead1.r   r   rH   bytesc                   d S rK   rL   r   s     rO   r1   z_CanRead1.read1   re   rP   Nr   )r   r   rH   r   )rR   rS   rT   r1   rL   rP   rO   r   r              @@@@@@@rP   r   c                      e Zd ZddZdS )_CanReadAllrH   rB   c                    d S rK   rL   rM   s    rO   r3   z_CanReadAll.readall   re   rP   Nr   )rR   rS   rT   r3   rL   rP   rO   r   r      s        ++++++rP   r   c                      e Zd ZddZdS )_CanReadIntobufrD   rH   r   c                   d S rK   rL   rN   r   s     rO   r4   z_CanReadInto.readinto   re   rP   N)r   rD   rH   r   )rR   rS   rT   r4   rL   rP   rO   r   r      s        ======rP   r   c                      e Zd ZddZdS )_CanReadInto1r   rD   rH   rc   c                   d S rK   rL   rN   r   s     rO   r7   z_CanReadInto1.readinto1   re   rP   N)r   rD   rH   rc   )rR   rS   rT   r7   rL   rP   rO   r   r      s        ::::::rP   r   c                      e Zd Zdd	dZdS )
_CanReadLine.r   rc   rH   rB   c                   d S rK   rL   r   s     rO   r5   z_CanReadLine.readline   re   rP   Nr   r   rc   rH   rB   )rR   rS   rT   r5   rL   rP   rO   r   r      r   rP   r   c                      e Zd Zdd	dZdS )
_CanReadLines.hintrc   rH   list[AnyStr]c                   d S rK   rL   )rN   r   s     rO   r8   z_CanReadLines.readlines   re   rP   Nr   )r   rc   rH   r   )rR   rS   rT   r8   rL   rP   rO   r   r      s        DDDDDDDrP   r   c                      e Zd Zdd	dZdS )
_CanSeekr   targetrc   whencerH   c                   d S rK   rL   rN   r   r   s      rO   r.   z_CanSeek.seek   re   rP   Nr   )r   rc   r   rc   rH   rc   )rR   rS   rT   r.   rL   rP   rO   r   r      r   rP   r   c                      e Zd ZddZdS )_CanTellrH   rc   c                    d S rK   rL   rM   s    rO   r/   z_CanTell.tell   re   rP   Nrf   )rR   rS   rT   r/   rL   rP   rO   r   r      s        """"""rP   r   c                      e Zd Zdd	dZdS )
_CanTruncate.r   r   rH   rc   c                   d S rK   rL   r   s     rO   r6   z_CanTruncate.truncate   re   rP   Nr   )r   r   rH   rc   )rR   rS   rT   r6   rL   rP   rO   r   r      s        AAAAAAArP   r   c                      e Zd ZddZdS )	_CanWritedatar@   rH   rc   c                   d S rK   rL   rN   r   s     rO   r2   z_CanWrite.write   re   rP   N)r   r@   rH   rc   )rR   rS   rT   r2   rL   rP   rO   r   r      s        666666rP   r   c                      e Zd ZddZdS )_CanWriteLineslinesIterable[T_contra]rH   r   c                   d S rK   rL   rN   r   s     rO   r9   z_CanWriteLines.writelines   re   rP   N)r   r   rH   r   )rR   rS   rT   r9   rL   rP   rO   r   r      s        GGGGGGrP   r   c                      e Zd Zdd	dZdS )
_CanPeekr   r   rc   rH   rB   c                   d S rK   rL   r   s     rO   r,   z_CanPeek.peek   re   rP   Nr   r   )rR   rS   rT   r,   rL   rP   rO   r   r      s        :::::::rP   r   c                      e Zd ZddZdS )
_CanDetachrH   r?   c                    d S rK   rL   rM   s    rO   detachz_CanDetach.detach   re   rP   Nrn   )rR   rS   rT   r   rL   rP   rO   r   r      s        %%%%%%rP   r   c                      e Zd ZddZdS )	_CanCloserH   r   c                    d S rK   rL   rM   s    rO   closez_CanClose.close   re   rP   Nr   )rR   rS   rT   r   rL   rP   rO   r   r      rg   rP   r   c                       e Zd ZdZdldZedmd            ZesdndZdo fdZ	dpdZ
dqdZdrdZdsdZeredtd            Zedud            Zedvd             Zedwd#            Zedxd&            Zedyd)            Zedzd,            Zed{d.            Zed|d0            Zed}d2            Zd~d4Zdd6Zdd8Zdd:Zdd<Zdd>ZddAZddCZdddHZ dddKZ!ddMZ"ddQZ#dddRZ$ddUZ%dddZZ&dd\Z'ddd_Z(ddbZ)ddfZ*ddiZ+dddkZ, xZ-S  xZ-S )AsyncIOWrapperaE  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.
    filer<   rH   r   c                    || _         d S rK   _wrapped)rN   r   s     rO   __init__zAsyncIOWrapper.__init__   s    rP   c                    | j         S )z.object: A reference to the wrapped file objectr   rM   s    rO   wrappedzAsyncIOWrapper.wrapped   s     }rP   r   rX   objectc                   |t           v rt          | j        |          S |t          v rSt          | j        |          t	          | j        | j        j        |          fd            }t          | ||           |S t          |          )Nc                 r   K   t          g| R i |}t          j                            |           d {V S rK   )r   trio	to_threadrun_sync)argskwargsfuncmeths      rO   wrapperz+AsyncIOWrapper.__getattr__.<locals>.wrapper   sL      "49$999&99D!%!8!8!>!>>>>>>>>rP   )r+   getattrr   r:   r   	__class__setattrAttributeError)rN   r   r   r   s      @rO   __getattr__zAsyncIOWrapper.__getattr__   s    '''t}d333***t}d33T^T]-DdKK? ? ? ? LK?
 dG,,, &&&rP   Iterable[str]c                     t          t                                                                }|                     fdt          D                        |                     fdt
          D                        |S )Nc              3  F   K   | ]}t          j        |          |V  d S rK   hasattrr   .0arN   s     rO   	<genexpr>z)AsyncIOWrapper.__dir__.<locals>.<genexpr>  s4      MM1GDL!4L4LMQMMMMMMrP   c              3  F   K   | ]}t          j        |          |V  d S rK   r   r   s     rO   r  z)AsyncIOWrapper.__dir__.<locals>.<genexpr>  s4      PP1wt|Q7O7OPQPPPPPPrP   )setsuper__dir__updater+   r:   )rN   attrsr   s   ` rO   r  zAsyncIOWrapper.__dir__   st    EGGOO%%&&MMMM 0MMMMMMPPPP 3PPPPPPrP   AsyncIOWrapper[FileT_co]c                    | S rK   rL   rM   s    rO   	__aiter__zAsyncIOWrapper.__aiter__  s    rP   rN   $AsyncIOWrapper[_CanReadLine[AnyStr]]r   c                P   K   |                                   d {V }|r|S t          rK   )r5   StopAsyncIteration)rN   lines     rO   	__anext__zAsyncIOWrapper.__anext__  s8      ]]__$$$$$$ 	%K$$rP   AsyncIOWrapper[_CanDetach[T]]AsyncIOWrapper[T]c                   K   t           j                            | j        j                   d{V }t          |          S )zLike :meth:`io.BufferedIOBase.detach`, but async.

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

        N)r   r   r   r   r   	wrap_file)rN   r   s     rO   r   zAsyncIOWrapper.detach  s@       N++DM,@AAAAAAAA~~rP   AsyncIOWrapper[_CanClose]c                
  K   t          j        d          5  t           j                            | j        j                   d{V  ddd           n# 1 swxY w Y   t           j                                         d{V  dS )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)r   CancelScoper   r   r   r   lowlevelcheckpoint_if_cancelledrM   s    rO   aclosezAsyncIOWrapper.aclose  s       T*** 	? 	?.))$-*=>>>>>>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? m3355555555555s   0AAAAsyncIOWrapper[_HasClosed]rI   c                    d S rK   rL   rM   s    rO   r   zAsyncIOWrapper.closed+  s    >AcrP   AsyncIOWrapper[_HasEncoding]c                    d S rK   rL   rM   s    rO   r#   zAsyncIOWrapper.encoding-  s    ADrP   AsyncIOWrapper[_HasErrors]r_   c                    d S rK   rL   rM   s    rO   r   zAsyncIOWrapper.errors/  s    DGCrP   AsyncIOWrapper[_HasNewlines[T]]r>   c                    d S rK   rL   rM   s    rO   r%   zAsyncIOWrapper.newlines1      BE#rP   AsyncIOWrapper[_HasBuffer]r	   c                    d S rK   rL   rM   s    rO   r   zAsyncIOWrapper.buffer3  r#  rP   AsyncIOWrapper[_HasRaw]r~   c                    d S rK   rL   rM   s    rO   r   zAsyncIOWrapper.raw5      @CrP   !AsyncIOWrapper[_HasLineBuffering]rc   c                    d S rK   rL   rM   s    rO   r*   zAsyncIOWrapper.line_buffering7  s    LOCrP   AsyncIOWrapper[_HasCloseFD]c                    d S rK   rL   rM   s    rO   r"   zAsyncIOWrapper.closefd9  r(  rP   AsyncIOWrapper[_HasName]c                    d S rK   rL   rM   s    rO   r   zAsyncIOWrapper.name;      9<rP   AsyncIOWrapper[_HasMode]c                    d S rK   rL   rM   s    rO   r   zAsyncIOWrapper.mode=  r/  rP   AsyncIOWrapper[_HasFileNo]c                    d S rK   rL   rM   s    rO   r    zAsyncIOWrapper.fileno@  re   rP   AsyncIOWrapper[_HasIsATTY]c                    d S rK   rL   rM   s    rO   r!   zAsyncIOWrapper.isattyA  re   rP   AsyncIOWrapper[_HasReadable]c                    d S rK   rL   rM   s    rO   r&   zAsyncIOWrapper.readableB  re   rP   AsyncIOWrapper[_HasSeekable]c                    d S rK   rL   rM   s    rO   r'   zAsyncIOWrapper.seekableC  re   rP   AsyncIOWrapper[_HasWritable]c                    d S rK   rL   rM   s    rO   r(   zAsyncIOWrapper.writableD  re   rP   $AsyncIOWrapper[_CanGetValue[AnyStr]]c                    d S rK   rL   rM   s    rO   r$   zAsyncIOWrapper.getvalueE  re   rP   AsyncIOWrapper[_CanGetBuffer]r   c                    d S rK   rL   rM   s    rO   r)   zAsyncIOWrapper.getbufferF  re   rP   AsyncIOWrapper[_CanFlush]c                
   K   d S rK   rL   rM   s    rO   r0   zAsyncIOWrapper.flushG  
        rP    AsyncIOWrapper[_CanRead[AnyStr]]r   r   c               
   K   d S rK   rL   r   s     rO   r-   zAsyncIOWrapper.readH  rB  rP   AsyncIOWrapper[_CanRead1]r   c               
   K   d S rK   rL   r   s     rO   r1   zAsyncIOWrapper.read1I  rB  rP   #AsyncIOWrapper[_CanReadAll[AnyStr]]c                
   K   d S rK   rL   rM   s    rO   r3   zAsyncIOWrapper.readallJ  rB  rP   AsyncIOWrapper[_CanReadInto]r   rD   c               
   K   d S rK   rL   r   s     rO   r4   zAsyncIOWrapper.readintoK  rB  rP   c               
   K   d S rK   rL   r   s     rO   r5   zAsyncIOWrapper.readlineL  rB  rP   %AsyncIOWrapper[_CanReadLines[AnyStr]]r   c                
   K   d S rK   rL   rM   s    rO   r8   zAsyncIOWrapper.readlinesM  rB  rP   r   AsyncIOWrapper[_CanSeek]r   r   c               
   K   d S rK   rL   r   s      rO   r.   zAsyncIOWrapper.seekN  rB  rP   AsyncIOWrapper[_CanTell]c                
   K   d S rK   rL   rM   s    rO   r/   zAsyncIOWrapper.tellO  rB  rP   NAsyncIOWrapper[_CanTruncate]c               
   K   d S rK   rL   r   s     rO   r6   zAsyncIOWrapper.truncateP  rB  rP   AsyncIOWrapper[_CanWrite[T]]r   c               
   K   d S rK   rL   r   s     rO   r2   zAsyncIOWrapper.writeQ  rB  rP   !AsyncIOWrapper[_CanWriteLines[T]]r   Iterable[T]c               
   K   d S rK   rL   r   s     rO   r9   zAsyncIOWrapper.writelinesR  rB  rP   AsyncIOWrapper[_CanReadInto1]r   c               
   K   d S rK   rL   r   s     rO   r7   zAsyncIOWrapper.readinto1S  rB  rP    AsyncIOWrapper[_CanPeek[AnyStr]]c               
   K   d S rK   rL   r   s     rO   r,   zAsyncIOWrapper.peekT  rB  rP   )r   r<   rH   r   )rH   r<   )r   rX   rH   r   )rH   r   )rH   r  )rN   r  rH   r   )rN   r  rH   r  )rN   r  rH   r   )rN   r  rH   rI   )rN   r  rH   rX   )rN   r  rH   r_   )rN   r!  rH   r>   )rN   r$  rH   r	   )rN   r&  rH   r~   )rN   r)  rH   rc   )rN   r+  rH   rI   )rN   r-  rH   rX   )rN   r0  rH   rX   )rN   r2  rH   rc   )rN   r4  rH   rI   )rN   r6  rH   rI   )rN   r8  rH   rI   )rN   r:  rH   rI   )rN   r<  rH   r   )rN   r>  rH   r   )rN   r@  rH   r   )rC  )rN   rD  r   r   rH   r   )rN   rF  r   r   rH   r   )rN   rH  rH   r   )rN   rJ  r   rD   rH   r   )rN   r  r   rc   rH   r   )rN   rM  rH   r   r   )rN   rO  r   rc   r   rc   rH   rc   )rN   rQ  rH   rc   rK   )rN   rS  r   r   rH   rc   )rN   rU  r   r>   rH   rc   )rN   rW  r   rX  rH   r   )rN   rZ  r   rD   rH   rc   )rN   r\  r   rc   rH   r   ).rR   rS   rT   __doc__r   rU   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)   r0   r-   r1   r3   r4   r5   r8   r.   r/   r6   r2   r9   r7   r,   __classcell__)r   s   @rO   r   r      s               X
  '	' 	' 	' 	'"        % % % %	 	 	 	6 6 6 6  ,` 
AAA 
A	DDD 
D	GGG 
G	EEE 
E	EEE 
E	CCC 
C	OOO 
O	CCC 
C	<<< 
<	<<< 
<@@@@AAAAEEEEEEEEEEEEOOOOMMMMEEEEggggg`````SSSSaaaahhhhh]]]]cccccBBBBfffffSSSSiiii_____________Y,` ,` ,` ,`rP   r   r   rrC  r   	_OpenFiler   r   	bufferingrc   r#   r_   r   newliner"   rI   opener_Opener | NonerH    AsyncIOWrapper[io.TextIOWrapper]c                
   K   d S rK   rL   r   r   rb  r#   r   rc  r"   rd  s           rO   	open_fileri  \  s       (+srP   r   
Literal[0]r   AsyncIOWrapper[io.FileIO]c                
   K   d S rK   rL   rh  s           rO   ri  ri  i  s       !$rP   r   Literal[-1, 1]!AsyncIOWrapper[io.BufferedRandom]c                
   K   d S rK   rL   rh  s           rO   ri  ri  v         ),rP   r   !AsyncIOWrapper[io.BufferedWriter]c                
   K   d S rK   rL   rh  s           rO   ri  ri    rp  rP   r   !AsyncIOWrapper[io.BufferedReader]c                
   K   d S rK   rL   rh  s           rO   ri  ri    rp  rP   AsyncIOWrapper[BinaryIO]c                
   K   d S rK   rL   rh  s           rO   ri  ri    s        #srP   rX   AsyncIOWrapper[IO[Any]]c                
   K   d S rK   rL   rh  s           rO   ri  ri    s       "crP   AsyncIOWrapper[Any]c                   K   t          t          j                            t          j        | |||||||	  	         d{V           }|S )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  r   r   r   ioopen)	r   r   rb  r#   r   rc  r"   rd  _files	            rO   ri  ri    sg      6 n%%GT4HfgwPV
 
 	
 	
 	
 	
 	
 	
 E
 LrP   AsyncIOWrapper[FileT]c                     d
 fd} |d          r |d          s |d          st            d	          t                     S )a[  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'

    attrrX   rH   rI   c                ^    t          |           ot          t          |                     S rK   )r   callabler   )r  r   s    rO   haszwrap_file.<locals>.has  s*    tT""Dxd0C0C'D'DDrP   r   r-   r2   zI does not implement required duck-file methods: close and (read or write))r  rX   rH   rI   )	TypeErrorr   )r   r  s   ` rO   r  r    s    $E E E E E E CLL 
cc&kk 
SS\\ 
 ( ( (
 
 	

 $rP   )r`  rC  NNNTN)r   ra  r   r   rb  rc   r#   r_   r   r_   rc  r_   r"   rI   rd  re  rH   rf  )NNNTN)r   ra  r   r   rb  rj  r#   r   r   r   rc  r   r"   rI   rd  re  rH   rk  )rC  NNNTN)r   ra  r   r   rb  rm  r#   r   r   r   rc  r   r"   rI   rd  re  rH   rn  )r   ra  r   r   rb  rm  r#   r   r   r   rc  r   r"   rI   rd  re  rH   rq  )r   ra  r   r   rb  rm  r#   r   r   r   rc  r   r"   rI   rd  re  rH   rs  )r   ra  r   r   rb  rc   r#   r   r   r   rc  r   r"   rI   rd  re  rH   ru  )r   ra  r   rX   rb  rc   r#   r_   r   r_   rc  r_   r"   rI   rd  re  rH   rw  )r   ra  r   rX   rb  rc   r#   r_   r   r_   rc  r_   r"   rI   rd  re  rH   ry  )r   r;   rH   r~  )T
__future__r   r{  	functoolsr   typingr   r   r   r   r	   r
   r   r   r   r   r   r   _utilr   abcr   	_typeshedr   r   r   r   r   r   typing_extensionsr   r+   __annotations__r:   r;   r<   r>   r?   r@   rX   r   rB   rC   rD   rE   rG   rW   r^   rb   ri   rl   rp   rt   rw   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rc   ra  _Openerri  r  rL   rP   rO   <module>r     s^
   " " " " " " " 				                                             	*                *)))))       ,! ! !     & 	7:...GCLLwv&&&7:T222GKet<<<	e4HHH  s%22222222& & & & &X & & &' ' ' ' 'x ' ' ', , , , ,X , , ,% % % % %X % % %& & & & &X & & &( ( ( ( (x~ ( ( (
( ( ( ( (x ( ( (( ( ( ( (x ( ( (( ( ( ( (x ( ( (* * * * *X * * *+ + + + +( + + +. . . . .H . . .' ' ' ' 'h ' ' '# # # # #8 # # ## # # # #8 # # #- - - - -x	* - - -/ / / / / / / /% % % % %H % % %D D D D D8I& D D DA A A A AH A A A, , , , ,hy) , , ,> > > > >x > > >; ; ; ; ; ; ; ;A A A A Ax	* A A AE E E E E( E E ED D D D D8 D D D# # # # #8 # # #B B B B Bx B B B7 7 7 7 7HX& 7 7 7H H H H H(+ H H H; ; ; ; ;8I& ; ; ;& & & & &Xd^ & & &% % % % %H % % %z` z` z` z` z`]GH$5 z` z` z`| "C'(	
C:s?
# 
 !	+ 	+ 	+ 	+ 
	+ 

 !	$ 	$ 	$ 	$ 
	$ 
 !#!	, 	, 	, 	, 
	, 
 !#!	, 	, 	, 	, 
	, 
 !#!	, 	, 	, 	, 
	, 

 !	# 	# 	# 	# 
	# 
 !	" 	" 	" 	" 
	" !         F           rP   