o
    Rh=                     @  s  U d dl mZ d dlZd dlmZ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 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 ddl m!Z! h dZ"de#d< h dZ$de#d< edZ%edddZ&edZ'edddZ(edddZ)ede*e+ddZ,ede*e+ddZ-e
rd dlm.Z.m/Z/ G dd de/Z0G dd de/Z1G d d! d!e/Z2G d"d# d#e/Z3G d$d% d%e/Z4G d&d' d'e/e( Z5G d(d) d)e/Z6G d*d+ d+e/Z7G d,d- d-e/Z8G d.d/ d/e/Z9G d0d1 d1e/Z:G d2d3 d3e/Z;G d4d5 d5e/Z<G d6d7 d7e/Z=G d8d9 d9e/Z>G d:d; d;e/e, Z?G d<d= d=e/Z@G d>d? d?e/ZAG d@dA dAe/e, ZBG dBdC dCe/ZCG dDdE dEe/e, ZDG dFdG dGe/ZEG dHdI dIe/ZFG dJdK dKe/e, ZGG dLdM dMe/e ZHG dNdO dOe/ZIG dPdQ dQe/ZJG dRdS dSe/ZKG dTdU dUe/e) ZLG dVdW dWe/e) ZMG dXdY dYe/e, ZNG dZd[ d[e/e( ZOG d\d] d]e/ZPG d^d_ d_eee& ZQed`eRf ZSee*eRgeRf ZTe	a	b					dddsdtZUe					dddydtZUe	b					ddd}dtZUe	b					ddddtZUe	b					ddddtZUe					ddddtZUe	b					ddddtZU	a	b					ddddtZUdddZVdS )    )annotationsN)CallableIterable)partial)	IOTYPE_CHECKINGAnyAnyStrBinaryIOGenericTypeVarUnionoverload   )async_wraps)AsyncResource)OpenBinaryModeOpenBinaryModeReadingOpenBinaryModeUpdatingOpenBinaryModeWritingOpenTextModeStrOrBytesPath)Literal)CapacityLimiter>   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dZdS )
_HasClosedreturnboolc                 C     d S N selfrL   rL   O/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/trio/_file_io.pyr   i      z_HasClosed.closedNrH   rI   )__name__
__module____qualname__propertyr   rL   rL   rL   rO   rG   h       rG   c                   @  rF   )_HasEncodingrH   strc                 C  rJ   rK   rL   rM   rL   rL   rO   r#   m   rP   z_HasEncoding.encodingNrH   rX   )rR   rS   rT   rU   r#   rL   rL   rL   rO   rW   l   rV   rW   c                   @  rF   )
_HasErrorsrH   
str | Nonec                 C  rJ   rK   rL   rM   rL   rL   rO   r   q   rP   z_HasErrors.errorsN)rH   r[   )rR   rS   rT   rU   r   rL   rL   rL   rO   rZ   p   rV   rZ   c                   @     e Zd ZdddZdS )
_HasFileNorH   intc                 C  rJ   rK   rL   rM   rL   rL   rO   r    u       z_HasFileNo.filenoNrH   r^   )rR   rS   rT   r    rL   rL   rL   rO   r]   t       r]   c                   @  r\   )
_HasIsATTYrH   rI   c                 C  rJ   rK   rL   rM   rL   rL   rO   r!   x   r_   z_HasIsATTY.isattyNrQ   )rR   rS   rT   r!   rL   rL   rL   rO   rb   w   ra   rb   c                   @  rF   )_HasNewlinesrH   r?   c                 C  rJ   rK   rL   rM   rL   rL   rO   r%   |   rP   z_HasNewlines.newlinesNrH   r?   )rR   rS   rT   rU   r%   rL   rL   rL   rO   rc   z   s    rc   c                   @  r\   )_HasReadablerH   rI   c                 C  rJ   rK   rL   rM   rL   rL   rO   r&      r_   z_HasReadable.readableNrQ   )rR   rS   rT   r&   rL   rL   rL   rO   re      ra   re   c                   @  r\   )_HasSeekablerH   rI   c                 C  rJ   rK   rL   rM   rL   rL   rO   r'      r_   z_HasSeekable.seekableNrQ   )rR   rS   rT   r'   rL   rL   rL   rO   rf      ra   rf   c                   @  r\   )_HasWritablerH   rI   c                 C  rJ   rK   rL   rM   rL   rL   rO   r(      r_   z_HasWritable.writableNrQ   )rR   rS   rT   r(   rL   rL   rL   rO   rg      ra   rg   c                   @  rF   )
_HasBufferrH   r
   c                 C  rJ   rK   rL   rM   rL   rL   rO   r      rP   z_HasBuffer.bufferN)rH   r
   )rR   rS   rT   rU   r   rL   rL   rL   rO   rh      rV   rh   c                   @  rF   )_HasRawrH   io.RawIOBasec                 C  rJ   rK   rL   rM   rL   rL   rO   r      rP   z_HasRaw.rawN)rH   rj   )rR   rS   rT   rU   r   rL   rL   rL   rO   ri      rV   ri   c                   @  rF   )_HasLineBufferingrH   rI   c                 C  rJ   rK   rL   rM   rL   rL   rO   r*      rP   z _HasLineBuffering.line_bufferingNrQ   )rR   rS   rT   rU   r*   rL   rL   rL   rO   rk      rV   rk   c                   @  rF   )_HasCloseFDrH   rI   c                 C  rJ   rK   rL   rM   rL   rL   rO   r"      rP   z_HasCloseFD.closefdNrQ   )rR   rS   rT   rU   r"   rL   rL   rL   rO   rl      rV   rl   c                   @  rF   )_HasNamerH   rX   c                 C  rJ   rK   rL   rM   rL   rL   rO   r      rP   z_HasName.nameNrY   )rR   rS   rT   rU   r   rL   rL   rL   rO   rm      rV   rm   c                   @  rF   )_HasModerH   rX   c                 C  rJ   rK   rL   rM   rL   rL   rO   r      rP   z_HasMode.modeNrY   )rR   rS   rT   rU   r   rL   rL   rL   rO   rn      rV   rn   c                   @  r\   )_CanGetValuerH   rB   c                 C  rJ   rK   rL   rM   rL   rL   rO   r$      r_   z_CanGetValue.getvalueNrH   rB   )rR   rS   rT   r$   rL   rL   rL   rO   ro      ra   ro   c                   @  r\   )_CanGetBufferrH   
memoryviewc                 C  rJ   rK   rL   rM   rL   rL   rO   r)      r_   z_CanGetBuffer.getbufferN)rH   rr   )rR   rS   rT   r)   rL   rL   rL   rO   rq      ra   rq   c                   @  r\   )	_CanFlushrH   Nonec                 C  rJ   rK   rL   rM   rL   rL   rO   r0      r_   z_CanFlush.flushNrH   rt   )rR   rS   rT   r0   rL   rL   rL   rO   rs      ra   rs   c                   @     e Zd Zd	d
ddZdS )_CanRead.size
int | NonerH   rB   c                C  rJ   rK   rL   rN   rx   rL   rL   rO   r-      r_   z_CanRead.readN.)rx   ry   rH   rB   )rR   rS   rT   r-   rL   rL   rL   rO   rw          rw   c                   @  rv   )	_CanRead1.rx   ry   rH   bytesc                C  rJ   rK   rL   rz   rL   rL   rO   r1      r_   z_CanRead1.read1Nr{   )rx   ry   rH   r~   )rR   rS   rT   r1   rL   rL   rL   rO   r}      r|   r}   c                   @  r\   )_CanReadAllrH   rB   c                 C  rJ   rK   rL   rM   rL   rL   rO   r3      r_   z_CanReadAll.readallNrp   )rR   rS   rT   r3   rL   rL   rL   rO   r      ra   r   c                   @     e Zd ZdddZdS )	_CanReadIntobufrD   rH   ry   c                C  rJ   rK   rL   rN   r   rL   rL   rO   r4      r_   z_CanReadInto.readintoN)r   rD   rH   ry   )rR   rS   rT   r4   rL   rL   rL   rO   r      ra   r   c                   @  r   )	_CanReadInto1r   rD   rH   r^   c                C  rJ   rK   rL   rN   r   rL   rL   rO   r7      r_   z_CanReadInto1.readinto1N)r   rD   rH   r^   )rR   rS   rT   r7   rL   rL   rL   rO   r      ra   r   c                   @  rv   )_CanReadLine.rx   r^   rH   rB   c                C  rJ   rK   rL   rz   rL   rL   rO   r5      r_   z_CanReadLine.readlineNr{   rx   r^   rH   rB   )rR   rS   rT   r5   rL   rL   rL   rO   r      r|   r   c                   @  rv   )_CanReadLines.hintr^   rH   list[AnyStr]c                C  rJ   rK   rL   )rN   r   rL   rL   rO   r8      r_   z_CanReadLines.readlinesNr{   )r   r^   rH   r   )rR   rS   rT   r8   rL   rL   rL   rO   r      r|   r   c                   @  rv   )_CanSeekr   targetr^   whencerH   c                C  rJ   rK   rL   rN   r   r   rL   rL   rO   r.      r_   z_CanSeek.seekNr   )r   r^   r   r^   rH   r^   )rR   rS   rT   r.   rL   rL   rL   rO   r      r|   r   c                   @  r\   )_CanTellrH   r^   c                 C  rJ   rK   rL   rM   rL   rL   rO   r/      r_   z_CanTell.tellNr`   )rR   rS   rT   r/   rL   rL   rL   rO   r      ra   r   c                   @  rv   )_CanTruncate.rx   ry   rH   r^   c                C  rJ   rK   rL   rz   rL   rL   rO   r6      r_   z_CanTruncate.truncateNr{   )rx   ry   rH   r^   )rR   rS   rT   r6   rL   rL   rL   rO   r      r|   r   c                   @  r   )		_CanWritedatar@   rH   r^   c                C  rJ   rK   rL   rN   r   rL   rL   rO   r2      r_   z_CanWrite.writeN)r   r@   rH   r^   )rR   rS   rT   r2   rL   rL   rL   rO   r      ra   r   c                   @  r   )	_CanWriteLineslinesIterable[T_contra]rH   rt   c                C  rJ   rK   rL   rN   r   rL   rL   rO   r9      r_   z_CanWriteLines.writelinesN)r   r   rH   rt   )rR   rS   rT   r9   rL   rL   rL   rO   r          r   c                   @  rv   )_CanPeekr   rx   r^   rH   rB   c                C  rJ   rK   rL   rz   rL   rL   rO   r,      r_   z_CanPeek.peekNr   r   )rR   rS   rT   r,   rL   rL   rL   rO   r      r|   r   c                   @  r\   )
_CanDetachrH   r?   c                 C  rJ   rK   rL   rM   rL   rL   rO   detach   r_   z_CanDetach.detachNrd   )rR   rS   rT   r   rL   rL   rL   rO   r      r   r   c                   @  r\   )	_CanCloserH   rt   c                 C  rJ   rK   rL   rM   rL   rL   rO   close   r_   z_CanClose.closeNru   )rR   rS   rT   r   rL   rL   rL   rO   r      ra   r   c                      s  e Zd ZdZdddZeddd	ZesdddZd fddZ	dddZ
dddZdddZddd Zeredd#d$Zedd&d'Zedd*d+Zedd.d/Zedd2d3Zedd6d7Zedd:d;Zedd=d>Zedd@dAZeddCdDZddFdGZddIdJZddLdMZddOdPZddRdSZddUdVZddYdZZdd\d]ZdddbdcZ dddfdgZ!ddidjZ"ddndoZ#dddpdqZ$ddtduZ%dddzd{Z&dd}d~Z'ddddZ(dddZ)dddZ*dddZ+ddddZ,  Z-S   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   rt   c                 C  s
   || _ d S rK   _wrapped)rN   r   rL   rL   rO   __init__   s   
zAsyncIOWrapper.__init__c                 C  s   | j S )z.object: A reference to the wrapped file objectr   rM   rL   rL   rO   wrapped   s   zAsyncIOWrapper.wrappedr   rX   objectc                   s`   |t v r
t| j|S |tv r,t| j| t| j| jj|d	 fdd}t| || |S t|)
NargsCallable[..., T]kwargs,object | str | bool | CapacityLimiter | NonerH   r>   c                    s*   t  g| R i |}tj|I d H S rK   )r   trio	to_threadrun_sync)r   r   funcmethrL   rO   wrapper   s   z+AsyncIOWrapper.__getattr__.<locals>.wrapper)r   r   r   r   rH   r>   )r+   getattrr   r:   r   	__class__setattrAttributeError)rN   r   r   rL   r   rO   __getattr__   s   zAsyncIOWrapper.__getattr__Iterable[str]c                   sB   t t  }| fddtD  | fddtD  |S )Nc                 3       | ]}t  j|r|V  qd S rK   hasattrr   .0arM   rL   rO   	<genexpr>      z)AsyncIOWrapper.__dir__.<locals>.<genexpr>c                 3  r   rK   r   r   rM   rL   rO   r     r   )setsuper__dir__updater+   r:   )rN   attrsr   rM   rO   r     s   zAsyncIOWrapper.__dir__AsyncIOWrapper[FileT_co]c                 C  s   | S rK   rL   rM   rL   rL   rO   	__aiter__	  rP   zAsyncIOWrapper.__aiter__rN   $AsyncIOWrapper[_CanReadLine[AnyStr]]r	   c                   s   |   I d H }|r|S trK   )r5   StopAsyncIteration)rN   linerL   rL   rO   	__anext__  s
   zAsyncIOWrapper.__anext__AsyncIOWrapper[_CanDetach[T]]AsyncIOWrapper[T]c                   s    t j| jjI dH }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   rL   rL   rO   r     s   zAsyncIOWrapper.detachAsyncIOWrapper[_CanClose]c                   sX   t jdd t j| jjI dH  W d   n1 sw   Y  t j I dH  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   rL   rL   rO   aclose  s
   	zAsyncIOWrapper.acloseAsyncIOWrapper[_HasClosed]rI   c                 C  rJ   rK   rL   rM   rL   rL   rO   r   /  rP   zAsyncIOWrapper.closedAsyncIOWrapper[_HasEncoding]c                 C  rJ   rK   rL   rM   rL   rL   rO   r#   1  rP   zAsyncIOWrapper.encodingAsyncIOWrapper[_HasErrors]r[   c                 C  rJ   rK   rL   rM   rL   rL   rO   r   3  rP   zAsyncIOWrapper.errorsAsyncIOWrapper[_HasNewlines[T]]r>   c                 C  rJ   rK   rL   rM   rL   rL   rO   r%   5  rP   zAsyncIOWrapper.newlinesAsyncIOWrapper[_HasBuffer]r
   c                 C  rJ   rK   rL   rM   rL   rL   rO   r   7  rP   zAsyncIOWrapper.bufferAsyncIOWrapper[_HasRaw]rj   c                 C  rJ   rK   rL   rM   rL   rL   rO   r   9  rP   zAsyncIOWrapper.raw!AsyncIOWrapper[_HasLineBuffering]r^   c                 C  rJ   rK   rL   rM   rL   rL   rO   r*   ;  rP   zAsyncIOWrapper.line_bufferingAsyncIOWrapper[_HasCloseFD]c                 C  rJ   rK   rL   rM   rL   rL   rO   r"   =  rP   zAsyncIOWrapper.closefdAsyncIOWrapper[_HasName]c                 C  rJ   rK   rL   rM   rL   rL   rO   r   ?  rP   zAsyncIOWrapper.nameAsyncIOWrapper[_HasMode]c                 C  rJ   rK   rL   rM   rL   rL   rO   r   A  rP   zAsyncIOWrapper.modeAsyncIOWrapper[_HasFileNo]c                 C  rJ   rK   rL   rM   rL   rL   rO   r    D  r_   zAsyncIOWrapper.filenoAsyncIOWrapper[_HasIsATTY]c                 C  rJ   rK   rL   rM   rL   rL   rO   r!   E  r_   zAsyncIOWrapper.isattyAsyncIOWrapper[_HasReadable]c                 C  rJ   rK   rL   rM   rL   rL   rO   r&   F  r_   zAsyncIOWrapper.readableAsyncIOWrapper[_HasSeekable]c                 C  rJ   rK   rL   rM   rL   rL   rO   r'   G  r_   zAsyncIOWrapper.seekableAsyncIOWrapper[_HasWritable]c                 C  rJ   rK   rL   rM   rL   rL   rO   r(   H  r_   zAsyncIOWrapper.writable$AsyncIOWrapper[_CanGetValue[AnyStr]]c                 C  rJ   rK   rL   rM   rL   rL   rO   r$   I  r_   zAsyncIOWrapper.getvalueAsyncIOWrapper[_CanGetBuffer]rr   c                 C  rJ   rK   rL   rM   rL   rL   rO   r)   J  r_   zAsyncIOWrapper.getbufferAsyncIOWrapper[_CanFlush]c                      d S rK   rL   rM   rL   rL   rO   r0   K      zAsyncIOWrapper.flush AsyncIOWrapper[_CanRead[AnyStr]]rx   ry   c                  r   rK   rL   rz   rL   rL   rO   r-   L  r   zAsyncIOWrapper.readAsyncIOWrapper[_CanRead1]r~   c                  r   rK   rL   rz   rL   rL   rO   r1   M  r   zAsyncIOWrapper.read1#AsyncIOWrapper[_CanReadAll[AnyStr]]c                   r   rK   rL   rM   rL   rL   rO   r3   N  r   zAsyncIOWrapper.readallAsyncIOWrapper[_CanReadInto]r   rD   c                  r   rK   rL   r   rL   rL   rO   r4   O  r   zAsyncIOWrapper.readintoc                  r   rK   rL   rz   rL   rL   rO   r5   P  r   zAsyncIOWrapper.readline%AsyncIOWrapper[_CanReadLines[AnyStr]]r   c                   r   rK   rL   rM   rL   rL   rO   r8   Q  r   zAsyncIOWrapper.readlinesr   AsyncIOWrapper[_CanSeek]r   r   c                  r   rK   rL   r   rL   rL   rO   r.   R  r   zAsyncIOWrapper.seekAsyncIOWrapper[_CanTell]c                   r   rK   rL   rM   rL   rL   rO   r/   S  r   zAsyncIOWrapper.tellNAsyncIOWrapper[_CanTruncate]c                  r   rK   rL   rz   rL   rL   rO   r6   T  r   zAsyncIOWrapper.truncateAsyncIOWrapper[_CanWrite[T]]r   c                  r   rK   rL   r   rL   rL   rO   r2   U  r   zAsyncIOWrapper.write!AsyncIOWrapper[_CanWriteLines[T]]r   Iterable[T]c                  r   rK   rL   r   rL   rL   rO   r9   V  r   zAsyncIOWrapper.writelinesAsyncIOWrapper[_CanReadInto1]r   c                  r   rK   rL   r   rL   rL   rO   r7   W  r   zAsyncIOWrapper.readinto1 AsyncIOWrapper[_CanPeek[AnyStr]]c                  r   rK   rL   rz   rL   rL   rO   r,   X  r   zAsyncIOWrapper.peek)r   r<   rH   rt   )rH   r<   )r   rX   rH   r   )rH   r   )rH   r   )rN   r   rH   r	   )rN   r   rH   r   )rN   r   rH   rt   )rN   r   rH   rI   )rN   r   rH   rX   )rN   r   rH   r[   )rN   r   rH   r>   )rN   r   rH   r
   )rN   r   rH   rj   )rN   r   rH   r^   )rN   r   rH   rI   )rN   r   rH   rX   )rN   r   rH   rX   )rN   r   rH   r^   )rN   r   rH   rI   )rN   r   rH   rI   )rN   r   rH   rI   )rN   r   rH   rI   )rN   r   rH   r	   )rN   r   rH   rr   )rN   r   rH   rt   )r   )rN   r   rx   ry   rH   r	   )rN   r   rx   ry   rH   r~   )rN   r   rH   r	   )rN   r   r   rD   rH   ry   )rN   r   rx   r^   rH   r	   )rN   r   rH   r   r   )rN   r   r   r^   r   r^   rH   r^   )rN   r   rH   r^   rK   )rN   r   rx   ry   rH   r^   )rN   r   r   r>   rH   r^   )rN   r   r   r   rH   rt   )rN   r   r   rD   rH   r^   )rN   r   rx   r^   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__rL   rL   r   rO   r      sn    




















r   r   rr   r   	_OpenFiler   r   	bufferingr^   r#   r[   r   newliner"   rI   opener_Opener | NonerH    AsyncIOWrapper[io.TextIOWrapper]c                   r   rK   rL   r   r   r   r#   r   r   r"   r   rL   rL   rO   	open_file`     
r   r   
Literal[0]rt   AsyncIOWrapper[io.FileIO]c                   r   rK   rL   r   rL   rL   rO   r   m  r  r   Literal[-1, 1]!AsyncIOWrapper[io.BufferedRandom]c                   r   rK   rL   r   rL   rL   rO   r   z  r  r   !AsyncIOWrapper[io.BufferedWriter]c                   r   rK   rL   r   rL   rL   rO   r     r  r   !AsyncIOWrapper[io.BufferedReader]c                   r   rK   rL   r   rL   rL   rO   r     r  AsyncIOWrapper[BinaryIO]c                   r   rK   rL   r   rL   rL   rO   r     r  rX   AsyncIOWrapper[IO[Any]]c                   r   rK   rL   r   rL   rL   rO   r     r  AsyncIOWrapper[object]c           	        s.   t tjtj| |||||||	I dH }|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   r   r#   r   r   r"   r   file_rL   rL   rO   r     s   AsyncIOWrapper[FileT]c                   s<   d fd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                   s   t  | ott | S rK   )r   callabler   )r  r   rL   rO   has  s   zwrap_file.<locals>.hasr   r-   r2   zI does not implement required duck-file methods: close and (read or write)N)r  rX   rH   rI   )	TypeErrorr   )r   r  rL   r  rO   r     s   r   )r   r   NNNTN)r   r   r   r   r   r^   r#   r[   r   r[   r   r[   r"   rI   r   r   rH   r   )NNNTN)r   r   r   r   r   r  r#   rt   r   rt   r   rt   r"   rI   r   r   rH   r  )r   NNNTN)r   r   r   r   r   r  r#   rt   r   rt   r   rt   r"   rI   r   r   rH   r  )r   r   r   r   r   r  r#   rt   r   rt   r   rt   r"   rI   r   r   rH   r  )r   r   r   r   r   r  r#   rt   r   rt   r   rt   r"   rI   r   r   rH   r  )r   r   r   r   r   r^   r#   rt   r   rt   r   rt   r"   rI   r   r   rH   r  )r   r   r   rX   r   r^   r#   r[   r   r[   r   r[   r"   rI   r   r   rH   r	  )r   r   r   rX   r   r^   r#   r[   r   r[   r   r[   r"   rI   r   r   rH   r
  )r   r;   rH   r  )W
__future__r   r  collections.abcr   r   	functoolsr   typingr   r   r   r	   r
   r   r   r   r   r   _utilr   abcr   	_typeshedr   r   r   r   r   r   typing_extensionsr   _syncr   r+   __annotations__r:   r;   r<   r>   r?   r@   rX   r~   rB   rC   rD   rE   rG   rW   rZ   r]   rb   rc   re   rf   rg   rh   ri   rk   rl   rm   rn   ro   rq   rs   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r^   r   _Openerr   r   rL   rL   rL   rO   <module>   s    ,  +