a
     h=                     @  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
rd 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
r|d 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ddcdddedfdfdfdgdhdidj	dkdlZUeddcdmdndodododgdhdpdj	dqdlZUeddcdrdsdodododgdhdtdj	dudlZUeddcdvdsdodododgdhdwdj	dxdlZUeddcdydsdodododgdhdzdj	d{dlZUeddcdmdedodododgdhd|dj	d}dlZUeddcd~dedfdfdfdgdhddj	ddlZUddcd~dedfdfdfdgdhddj	ddlZUddddd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>   	getbufferclosedmodefilenoencodingwritablerawreadableerrorsline_bufferingclosefdnamebufferseekablenewlinesisattygetvaluezset[str]_FILE_SYNC_ATTRS>   peekreadreadallreadline
writelinesflush	readinto1tell	readlinestruncatewriteread1seekreadinto_FILE_ASYNC_METHODSFileTFileT_coT)	covariantTT_coT_contra)contravariant	AnyStr_coAnyStr_contra)BufferProtocolc                   @  s   e Zd ZeddddZdS )
_HasClosedboolreturnc                 C  s   d S N selfrK   rK   R/var/www/html/swiplay.fr/scambot/venv/lib/python3.9/site-packages/trio/_file_io.pyr   i   s    z_HasClosed.closedN)__name__
__module____qualname__propertyr   rK   rK   rK   rN   rF   h   s   rF   c                   @  s   e Zd ZeddddZdS )_HasEncodingstrrH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   m   s    z_HasEncoding.encodingN)rO   rP   rQ   rR   r   rK   rK   rK   rN   rS   l   s   rS   c                   @  s   e Zd ZeddddZdS )
_HasErrors
str | NonerH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r"   q   s    z_HasErrors.errorsN)rO   rP   rQ   rR   r"   rK   rK   rK   rN   rU   p   s   rU   c                   @  s   e Zd ZddddZdS )
_HasFileNointrH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   u       z_HasFileNo.filenoN)rO   rP   rQ   r   rK   rK   rK   rN   rW   t   s   rW   c                   @  s   e Zd ZddddZdS )
_HasIsATTYrG   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r)   x   rY   z_HasIsATTY.isattyN)rO   rP   rQ   r)   rK   rK   rK   rN   rZ   w   s   rZ   c                   @  s   e Zd ZeddddZdS )_HasNewlinesr?   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r(   |   s    z_HasNewlines.newlinesN)rO   rP   rQ   rR   r(   rK   rK   rK   rN   r[   z   s   r[   c                   @  s   e Zd ZddddZdS )_HasReadablerG   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r!      rY   z_HasReadable.readableN)rO   rP   rQ   r!   rK   rK   rK   rN   r\      s   r\   c                   @  s   e Zd ZddddZdS )_HasSeekablerG   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r'      rY   z_HasSeekable.seekableN)rO   rP   rQ   r'   rK   rK   rK   rN   r]      s   r]   c                   @  s   e Zd ZddddZdS )_HasWritablerG   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r      rY   z_HasWritable.writableN)rO   rP   rQ   r   rK   rK   rK   rN   r^      s   r^   c                   @  s   e Zd ZeddddZdS )
_HasBufferr
   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r&      s    z_HasBuffer.bufferN)rO   rP   rQ   rR   r&   rK   rK   rK   rN   r_      s   r_   c                   @  s   e Zd ZeddddZdS )_HasRawio.RawIOBaserH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r       s    z_HasRaw.rawN)rO   rP   rQ   rR   r    rK   rK   rK   rN   r`      s   r`   c                   @  s   e Zd ZeddddZdS )_HasLineBufferingrG   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r#      s    z _HasLineBuffering.line_bufferingN)rO   rP   rQ   rR   r#   rK   rK   rK   rN   rb      s   rb   c                   @  s   e Zd ZeddddZdS )_HasCloseFDrG   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r$      s    z_HasCloseFD.closefdN)rO   rP   rQ   rR   r$   rK   rK   rK   rN   rc      s   rc   c                   @  s   e Zd ZeddddZdS )_HasNamerT   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r%      s    z_HasName.nameN)rO   rP   rQ   rR   r%   rK   rK   rK   rN   rd      s   rd   c                   @  s   e Zd ZeddddZdS )_HasModerT   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r      s    z_HasMode.modeN)rO   rP   rQ   rR   r   rK   rK   rK   rN   re      s   re   c                   @  s   e Zd ZddddZdS )_CanGetValuerB   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r*      rY   z_CanGetValue.getvalueN)rO   rP   rQ   r*   rK   rK   rK   rN   rf      s   rf   c                   @  s   e Zd ZddddZdS )_CanGetBuffer
memoryviewrH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r      rY   z_CanGetBuffer.getbufferN)rO   rP   rQ   r   rK   rK   rK   rN   rg      s   rg   c                   @  s   e Zd ZddddZdS )	_CanFlushNonerH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r1      rY   z_CanFlush.flushN)rO   rP   rQ   r1   rK   rK   rK   rN   ri      s   ri   c                   @  s   e Zd ZddddddZdS )	_CanRead.
int | NonerB   sizerI   c                C  s   d S rJ   rK   rM   rn   rK   rK   rN   r-      rY   z_CanRead.readN).)rO   rP   rQ   r-   rK   rK   rK   rN   rk      s   rk   c                   @  s   e Zd ZddddddZdS )		_CanRead1.rl   bytesrm   c                C  s   d S rJ   rK   ro   rK   rK   rN   r7      rY   z_CanRead1.read1N).)rO   rP   rQ   r7   rK   rK   rK   rN   rp      s   rp   c                   @  s   e Zd ZddddZdS )_CanReadAllrB   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r.      rY   z_CanReadAll.readallN)rO   rP   rQ   r.   rK   rK   rK   rN   rr      s   rr   c                   @  s   e Zd ZdddddZdS )_CanReadIntorD   rl   )bufrI   c                C  s   d S rJ   rK   rM   rt   rK   rK   rN   r9      rY   z_CanReadInto.readintoN)rO   rP   rQ   r9   rK   rK   rK   rN   rs      s   rs   c                   @  s   e Zd ZdddddZdS )_CanReadInto1rD   rX   )r&   rI   c                C  s   d S rJ   rK   rM   r&   rK   rK   rN   r2      rY   z_CanReadInto1.readinto1N)rO   rP   rQ   r2   rK   rK   rK   rN   rv      s   rv   c                   @  s   e Zd ZddddddZdS )	_CanReadLine.rX   rB   rm   c                C  s   d S rJ   rK   ro   rK   rK   rN   r/      rY   z_CanReadLine.readlineN).)rO   rP   rQ   r/   rK   rK   rK   rN   rx      s   rx   c                   @  s   e Zd ZddddddZdS )	_CanReadLines.rX   list[AnyStr])hintrI   c                C  s   d S rJ   rK   )rM   r{   rK   rK   rN   r4      rY   z_CanReadLines.readlinesN).)rO   rP   rQ   r4   rK   rK   rK   rN   ry      s   ry   c                   @  s    e Zd ZdddddddZdS )_CanSeekr   rX   )targetwhencerI   c                C  s   d S rJ   rK   rM   r}   r~   rK   rK   rN   r8      rY   z_CanSeek.seekN)r   )rO   rP   rQ   r8   rK   rK   rK   rN   r|      s   r|   c                   @  s   e Zd ZddddZdS )_CanTellrX   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r3      rY   z_CanTell.tellN)rO   rP   rQ   r3   rK   rK   rK   rN   r      s   r   c                   @  s   e Zd ZddddddZdS )	_CanTruncate.rl   rX   rm   c                C  s   d S rJ   rK   ro   rK   rK   rN   r5      rY   z_CanTruncate.truncateN).)rO   rP   rQ   r5   rK   rK   rK   rN   r      s   r   c                   @  s   e Zd ZdddddZdS )	_CanWriter@   rX   )datarI   c                C  s   d S rJ   rK   rM   r   rK   rK   rN   r6      rY   z_CanWrite.writeN)rO   rP   rQ   r6   rK   rK   rK   rN   r      s   r   c                   @  s   e Zd ZdddddZdS )_CanWriteLineszIterable[T_contra]rj   )linesrI   c                C  s   d S rJ   rK   rM   r   rK   rK   rN   r0      rY   z_CanWriteLines.writelinesN)rO   rP   rQ   r0   rK   rK   rK   rN   r      s   r   c                   @  s   e Zd ZddddddZdS )	_CanPeekr   rX   rB   rm   c                C  s   d S rJ   rK   ro   rK   rK   rN   r,      rY   z_CanPeek.peekN)r   )rO   rP   rQ   r,   rK   rK   rK   rN   r      s   r   c                   @  s   e Zd ZddddZdS )
_CanDetachr?   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   detach   rY   z_CanDetach.detachN)rO   rP   rQ   r   rK   rK   rK   rN   r      s   r   c                   @  s   e Zd ZddddZdS )	_CanCloserj   rH   c                 C  s   d S rJ   rK   rL   rK   rK   rN   close   rY   z_CanClose.closeN)rO   rP   rQ   r   rK   rK   rK   rN   r      s   r   c                      s  e Zd ZdZdddddZedddd	ZesBd
ddddZdd fddZ	ddddZ
dddddZdddddZddddd Zered!d"dd#d$Zed%d
dd&d'Zed(d)dd*d+Zed,d-dd.d/Zed0d1dd2d3Zed4d5dd6d7Zed8d9dd:d;Zed<d"dd=d>Zed?d
dd@dAZedBd
ddCdDZdEd9ddFdGZdHd"ddIdJZdKd"ddLdMZdNd"ddOdPZdQd"ddRdSZdTdddUdVZdWdXddYdZZd[ddd\d]Zdd_d`ddadbdcZ dddd`dedadfdgZ!dhdddidjZ"dkdld`dmdndoZ#ddd9ddadpdqZ$drdsddtduZ%ddwd9d9d9dxdydzZ&d{d9dd|d}Z'ddd`d9daddZ(dd-d9dddZ)ddddddZ*ddld9dddZ+ddd9ddaddZ,  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.
    r<   rj   filerI   c                 C  s
   || _ d S rJ   _wrapped)rM   r   rK   rK   rN   __init__   s    zAsyncIOWrapper.__init__rH   c                 C  s   | j S )z.object: A reference to the wrapped file objectr   rL   rK   rK   rN   wrapped   s    zAsyncIOWrapper.wrappedrT   object)r%   rI   c                   sl   |t v rt| j|S |tv r`t| j| t| j| jj|dddd fdd}t| || |S t|d S )NzCallable[..., T]z,object | str | bool | CapacityLimiter | Noner>   )argskwargsrI   c                    s(   t  g| R i |}tj|I d H S rJ   )r   trio	to_threadrun_sync)r   r   funcmethrK   rN   wrapper   s    z+AsyncIOWrapper.__getattr__.<locals>.wrapper)r+   getattrr   r:   r   	__class__setattrAttributeError)rM   r%   r   rK   r   rN   __getattr__   s    zAsyncIOWrapper.__getattr__zIterable[str]c                   sB   t t  }| fddtD  | fddtD  |S )Nc                 3  s   | ]}t  j|r|V  qd S rJ   hasattrr   .0arL   rK   rN   	<genexpr>  rY   z)AsyncIOWrapper.__dir__.<locals>.<genexpr>c                 3  s   | ]}t  j|r|V  qd S rJ   r   r   rL   rK   rN   r     rY   )setsuper__dir__updater+   r:   )rM   attrsr   rL   rN   r     s    zAsyncIOWrapper.__dir__zAsyncIOWrapper[FileT_co]c                 C  s   | S rJ   rK   rL   rK   rK   rN   	__aiter__	  s    zAsyncIOWrapper.__aiter__z$AsyncIOWrapper[_CanReadLine[AnyStr]]r	   )rM   rI   c                   s   |   I d H }|r|S td S rJ   )r/   StopAsyncIteration)rM   linerK   rK   rN   	__anext__  s    zAsyncIOWrapper.__anext__zAsyncIOWrapper[_CanDetach[T]]z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)rM   r    rK   rK   rN   r     s    zAsyncIOWrapper.detachzAsyncIOWrapper[_CanClose]c                   sV   t jdd& t j| jjI dH  W d   n1 s80    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)ZshieldN)r   ZCancelScoper   r   r   r   ZlowlevelZcheckpoint_if_cancelledrL   rK   rK   rN   aclose  s    	4zAsyncIOWrapper.aclosezAsyncIOWrapper[_HasClosed]rG   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   /  s    zAsyncIOWrapper.closedzAsyncIOWrapper[_HasEncoding]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   1  s    zAsyncIOWrapper.encodingzAsyncIOWrapper[_HasErrors]rV   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r"   3  s    zAsyncIOWrapper.errorszAsyncIOWrapper[_HasNewlines[T]]r>   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r(   5  s    zAsyncIOWrapper.newlineszAsyncIOWrapper[_HasBuffer]r
   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r&   7  s    zAsyncIOWrapper.bufferzAsyncIOWrapper[_HasRaw]ra   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r    9  s    zAsyncIOWrapper.rawz!AsyncIOWrapper[_HasLineBuffering]rX   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r#   ;  s    zAsyncIOWrapper.line_bufferingzAsyncIOWrapper[_HasCloseFD]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r$   =  s    zAsyncIOWrapper.closefdzAsyncIOWrapper[_HasName]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r%   ?  s    zAsyncIOWrapper.namezAsyncIOWrapper[_HasMode]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   A  s    zAsyncIOWrapper.modezAsyncIOWrapper[_HasFileNo]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   D  rY   zAsyncIOWrapper.filenozAsyncIOWrapper[_HasIsATTY]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r)   E  rY   zAsyncIOWrapper.isattyzAsyncIOWrapper[_HasReadable]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r!   F  rY   zAsyncIOWrapper.readablezAsyncIOWrapper[_HasSeekable]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r'   G  rY   zAsyncIOWrapper.seekablezAsyncIOWrapper[_HasWritable]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   H  rY   zAsyncIOWrapper.writablez$AsyncIOWrapper[_CanGetValue[AnyStr]]c                 C  s   d S rJ   rK   rL   rK   rK   rN   r*   I  rY   zAsyncIOWrapper.getvaluezAsyncIOWrapper[_CanGetBuffer]rh   c                 C  s   d S rJ   rK   rL   rK   rK   rN   r   J  rY   zAsyncIOWrapper.getbufferzAsyncIOWrapper[_CanFlush]c                   s   d S rJ   rK   rL   rK   rK   rN   r1   K  rY   zAsyncIOWrapper.flushz AsyncIOWrapper[_CanRead[AnyStr]]rl   )rM   rn   rI   c                  s   d S rJ   rK   ro   rK   rK   rN   r-   L  rY   zAsyncIOWrapper.readzAsyncIOWrapper[_CanRead1]rq   c                  s   d S rJ   rK   ro   rK   rK   rN   r7   M  rY   zAsyncIOWrapper.read1z#AsyncIOWrapper[_CanReadAll[AnyStr]]c                   s   d S rJ   rK   rL   rK   rK   rN   r.   N  rY   zAsyncIOWrapper.readallzAsyncIOWrapper[_CanReadInto]rD   )rM   rt   rI   c                  s   d S rJ   rK   ru   rK   rK   rN   r9   O  rY   zAsyncIOWrapper.readintoc                  s   d S rJ   rK   ro   rK   rK   rN   r/   P  rY   zAsyncIOWrapper.readlinez%AsyncIOWrapper[_CanReadLines[AnyStr]]rz   c                   s   d S rJ   rK   rL   rK   rK   rN   r4   Q  rY   zAsyncIOWrapper.readlinesr   zAsyncIOWrapper[_CanSeek])rM   r}   r~   rI   c                  s   d S rJ   rK   r   rK   rK   rN   r8   R  rY   zAsyncIOWrapper.seekzAsyncIOWrapper[_CanTell]c                   s   d S rJ   rK   rL   rK   rK   rN   r3   S  rY   zAsyncIOWrapper.tellNzAsyncIOWrapper[_CanTruncate]c                  s   d S rJ   rK   ro   rK   rK   rN   r5   T  rY   zAsyncIOWrapper.truncatezAsyncIOWrapper[_CanWrite[T]])rM   r   rI   c                  s   d S rJ   rK   r   rK   rK   rN   r6   U  rY   zAsyncIOWrapper.writez!AsyncIOWrapper[_CanWriteLines[T]]zIterable[T])rM   r   rI   c                  s   d S rJ   rK   r   rK   rK   rN   r0   V  rY   zAsyncIOWrapper.writelineszAsyncIOWrapper[_CanReadInto1])rM   r&   rI   c                  s   d S rJ   rK   rw   rK   rK   rN   r2   W  rY   zAsyncIOWrapper.readinto1z AsyncIOWrapper[_CanPeek[AnyStr]]c                  s   d S rJ   rK   ro   rK   rK   rN   r,   X  rY   zAsyncIOWrapper.peek)r   )r   )r   )r   )N)r   ).rO   rP   rQ   __doc__r   rR   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   r1   r-   r7   r.   r9   r/   r4   r8   r3   r5   r6   r0   r2   r,   __classcell__rK   rK   r   rN   r      sj   r   r   rr   	_OpenFiler   rX   rV   rG   z_Opener | Nonez AsyncIOWrapper[io.TextIOWrapper])	r   r   	bufferingr   r"   newliner$   openerrI   c                   s   d S rJ   rK   r   r   r   r   r"   r   r$   r   rK   rK   rN   	open_file`  s    
r   r   z
Literal[0]rj   zAsyncIOWrapper[io.FileIO]c                   s   d S rJ   rK   r   rK   rK   rN   r   m  s    
r   zLiteral[-1, 1]z!AsyncIOWrapper[io.BufferedRandom]c                   s   d S rJ   rK   r   rK   rK   rN   r   z  s    
r   z!AsyncIOWrapper[io.BufferedWriter]c                   s   d S rJ   rK   r   rK   rK   rN   r     s    
r   z!AsyncIOWrapper[io.BufferedReader]c                   s   d S rJ   rK   r   rK   rK   rN   r     s    
zAsyncIOWrapper[BinaryIO]c                   s   d S rJ   rK   r   rK   rK   rN   r     s    
rT   zAsyncIOWrapper[IO[Any]]c                   s   d S rJ   rK   r   rK   rK   rN   r     s    
z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_rK   rK   rN   r     s    zAsyncIOWrapper[FileT]r   c                   sB   dd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'

    rT   rG   )attrrI   c                   s   t  | ott | S rJ   )r   callabler   )r   r   rK   rN   has  s    zwrap_file.<locals>.hasr   r-   r6   zI does not implement required duck-file methods: close and (read or write))	TypeErrorr   )r   r   rK   r   rN   r     s    r   )r   r   NNNTN)NNNTN)r   NNNTN)r   NNNTN)r   NNNTN)NNNTN)r   NNNTN)r   r   NNNTN)W
__future__r   r   collections.abcr   r   	functoolsr   typingr   r   r   r	   r
   r   r   r   r   r   Z_utilr   abcr   Z	_typeshedr   r   r   r   r   r   Ztyping_extensionsr   Z_syncr   r+   __annotations__r:   r;   r<   r>   r?   r@   rT   rq   rB   rC   rD   rE   rF   rS   rU   rW   rZ   r[   r\   r]   r^   r_   r`   rb   rc   rd   re   rf   rg   ri   rk   rp   rr   rs   rv   rx   ry   r|   r   r   r   r   r   r   r   r   rX   r   Z_Openerr   r   rK   rK   rK   rN   <module>   s   ,         "     "      "      "      "     "      "        +