Your IP : 3.18.213.37
U
e5d�k�@sxddlZddlZddlZddlZddlZddlZddlmZej dkrTddl
mZndZddl
Z
ddl
mZmZmZmZdddhZeed�r�e�ej�e�ej�d ZeZeed
�p�ejjZd6dd�Zdd�Zz
e
jZWnek
�r�eZYnXGdd�d�Z Gdd�d�Z!z
e
j"Z"Wn(ek
�rDGdd�de#e$�Z"YnXGdd�dej%d�Z&e
j&�'e&�Gdd�de&�Z(e
j(�'e(�ddl)m*Z*e(�'e*�Gdd�de&�Z+e
j+�'e+�Gd d!�d!e+�Z,Gd"d#�d#e+�Z-Gd$d%�d%e,�Z.Gd&d'�d'e,�Z/Gd(d)�d)e+�Z0Gd*d+�d+e/e.�Z1Gd,d-�d-e(�Z*Gd.d/�d/e&�Z2e
j2�'e2�Gd0d1�d1ej3�Z4Gd2d3�d3e2�Z5Gd4d5�d5e5�Z6dS)7�N)�
allocate_lock>�win32�cygwin)�setmode)�__all__�SEEK_SET�SEEK_CUR�SEEK_END��� SEEK_HOLEi Zgettotalrefcount�r���Tc Cs�t|t�st�|�}t|tttf�s0td|��t|t�sFtd|��t|t�s\td|��|dk rzt|t�sztd|��|dk r�t|t�s�td|��t|�}|td�s�t|�t|�kr�t d|��d|k} d|k}
d |k}d
|k}d|k}
d|k}d
|k}d|k�rD| �s"|�s"|�s"|
�r*t d��ddl
}|�dtd�d}
|�rX|�rXt d��| |
||dk�rvt d��| �s�|
�s�|�s�|�s�t d��|�r�|dk �r�t d��|�r�|dk �r�t d��|�r�|dk �r�t d��|�r|dk�rddl
}|�dt
d�t|| �rd�pd|
�r"d�p$d|�r2d �p4d|�rBd
�pDd|
�rRd�pTd||d�}|}�z$d}|dk�s�|dk�r�|���r�d}d}|dk�r�t}zt�|���j}Wnttfk
�r�YnX|dk�r�|}|dk�r�t d ��|dk�r|�r|WSt d!��|
�r t||�}n<| �s2|�s2|�r>t||�}n|
�rPt||�}nt d"|��|}|�rl|WSt|||||�}|}||_|WS|���YnXdS)#Nzinvalid file: %rzinvalid mode: %rzinvalid buffering: %r�invalid encoding: %r�invalid errors: %rzaxrwb+tU�xr
�w�a�+�t�b�Uz4mode U cannot be combined with 'x', 'w', 'a', or '+'rz'U' mode is deprecatedrTz'can't have text and binary mode at oncer
z)can't have read/write/append mode at oncez/must have exactly one of read/write/append modez-binary mode doesn't take an encoding argumentz+binary mode doesn't take an errors argumentz+binary mode doesn't take a newline argumentzaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used�)�openerFrzinvalid buffering sizezcan't have unbuffered text I/Ozunknown mode: %r)�
isinstance�int�os�fspath�str�bytes� TypeError�set�len�
ValueError�warnings�warn�DeprecationWarning�RuntimeWarning�FileIO�isatty�DEFAULT_BUFFER_SIZE�fstat�fileno�
st_blksize�OSError�AttributeError�BufferedRandom�BufferedWriter�BufferedReader�
TextIOWrapper�mode�close)�filer4� buffering�encoding�errors�newline�closefdrZmodesZcreatingZreadingZwritingZ appendingZupdating�textZbinaryr$�raw�result�line_bufferingZbs�buffer�rA�/usr/lib64/python3.8/_pyio.py�open)s�{
�������
rCcCs ddl}|�dtd�t|d�S)Nrz(_pyio.open_code() may not be using hooksr�rb)r$r%r'rC)�pathr$rArArB�_open_code_with_warnings�rFc@seZdZddd�ZdS)�
DocDescriptorNcCs
dtjS)Nz\open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
)rC�__doc__)�self�obj�typrArArB�__get__s��zDocDescriptor.__get__)N)�__name__�
__module__�__qualname__rLrArArArBrGsrGc@seZdZe�Zdd�ZdS)�OpenWrappercOs
t||�S�N)rC)�cls�args�kwargsrArArB�__new__,szOpenWrapper.__new__N)rMrNrOrGrHrUrArArArBrP"srPc@seZdZdS)�UnsupportedOperationN)rMrNrOrArArArBrV5srVc@s�eZdZdd�Zd5dd�Zdd�Zd6d d
�Zdd�Zd
Zdd�Z dd�Z
dd�Zd7dd�Zdd�Z
d8dd�Zdd�Zd9dd�Zedd��Zd:d d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd;d+d,�Zd-d.�Zd/d0�Zd<d1d2�Zd3d4�ZdS)=�IOBasecCstd|jj|f��dS)Nz%s.%s() not supported)rV� __class__rM)rI�namerArArB�_unsupported\s
�zIOBase._unsupportedrcCs|�d�dS)N�seek�rZ�rI�pos�whencerArArBr[cszIOBase.seekcCs|�dd�S�Nrr
)r[�rIrArArB�tellsszIOBase.tellNcCs|�d�dS�N�truncater\�rIr^rArArBrdwszIOBase.truncatecCs|��dSrQ��_checkClosedrarArArB�flush�szIOBase.flushFcCs |jsz|��W5d|_XdS)NT)�_IOBase__closedrhrarArArBr5�szIOBase.closecCsVz
|j}Wntk
r YdSX|r*dStr8|��nz|��WnYnXdSrQ)�closedr/�_IOBASE_EMITS_UNRAISABLEr5)rIrjrArArB�__del__�s
zIOBase.__del__cCsdS�NFrArarArArB�seekable�szIOBase.seekablecCs |��st|dkrdn|��dS)NzFile or stream is not seekable.)rnrV�rI�msgrArArB�_checkSeekable�s��zIOBase._checkSeekablecCsdSrmrArarArArB�readable�szIOBase.readablecCs |��st|dkrdn|��dS)NzFile or stream is not readable.)rrrVrorArArB�_checkReadable�s��zIOBase._checkReadablecCsdSrmrArarArArB�writable�szIOBase.writablecCs |��st|dkrdn|��dS)NzFile or stream is not writable.)rtrVrorArArB�_checkWritable�s��zIOBase._checkWritablecCs|jSrQ)rirarArArBrj�sz
IOBase.closedcCs|jrt|dkrdn|��dS�N�I/O operation on closed file.�rjr#rorArArBrg�s��zIOBase._checkClosedcCs|��|SrQrfrarArArB� __enter__�szIOBase.__enter__cGs|��dSrQ)r5)rIrSrArArB�__exit__�szIOBase.__exit__cCs|�d�dS)Nr,r\rarArArBr,�sz
IOBase.filenocCs|��dSrmrfrarArArBr)sz
IOBase.isattyrcs�t�d�r��fdd�}ndd�}�dkr0d�n4z
�j}Wn"tk
r\t��d���YnX|��t�}�dks~t|��kr���|��}|s�q�||7}|�d�rjq�qjt|�S) N�peekcs>��d�}|sdS|�d�dp&t|�}�dkr:t|��}|S)Nr
�
r)r{�findr"�min)Z readahead�n�rI�sizerArB�
nreadaheads
z#IOBase.readline.<locals>.nreadaheadcSsdS�Nr
rArArArArBr� sr� is not an integerrr|) �hasattr� __index__r/r � bytearrayr"�read�endswithr)rIr�r��
size_index�resrrAr�rB�readlines&
zIOBase.readlinecCs|��|SrQrfrarArArB�__iter__5szIOBase.__iter__cCs|��}|st�|SrQ)r��
StopIteration�rI�linerArArB�__next__9szIOBase.__next__cCsP|dks|dkrt|�Sd}g}|D]&}|�|�|t|�7}||kr$qLq$|S�Nr)�list�appendr")rIZhintr�linesr�rArArB� readlines?s
zIOBase.readlinescCs |��|D]}|�|�qdSrQ)rg�write)rIr�r�rArArB�
writelinesQszIOBase.writelines)r)N)N)N)N)N)r)N)rMrNrOrZr[rbrdrhrir5rlrnrqrrrsrtru�propertyrjrgryrzr,r)r�r�r�r�r�rArArArBrW9s4#
*
rW)� metaclassc@s.eZdZddd�Zdd�Zdd�Zdd �Zd
S)� RawIOBasercCsP|dkrd}|dkr|��St|���}|�|�}|dkr>dS||d�=t|�S)Nrr)�readallr�r��readintor)rIr�rrrArArBr�ls
zRawIOBase.readcCs4t�}|�t�}|sq ||7}q|r,t|�S|SdSrQ)r�r�r*r)rIr��datarArArBr�}s
zRawIOBase.readallcCs|�d�dS)Nr�r\�rIrrArArBr��szRawIOBase.readintocCs|�d�dS�Nr�r\r�rArArBr��szRawIOBase.writeN)r)rMrNrOr�r�r�r�rArArArBr�^s
r�)r(c@sHeZdZddd�Zddd�Zdd�Zdd �Zd
d�Zdd
�Zdd�Z dS)�BufferedIOBasercCs|�d�dS�Nr�r\r�rArArBr��szBufferedIOBase.readcCs|�d�dS)N�read1r\r�rArArBr��szBufferedIOBase.read1cCs|j|dd�S)NF�r��� _readintor�rArArBr��szBufferedIOBase.readintocCs|j|dd�S)NTr�r�r�rArArB� readinto1�s zBufferedIOBase.readinto1cCsVt|t�st|�}|�d�}|r0|�t|��}n|�t|��}t|�}||d|�<|S�N�B)r�
memoryview�castr�r"r�)rIrr�r�rrArArBr��s
zBufferedIOBase._readintocCs|�d�dSr�r\r�rArArBr��s zBufferedIOBase.writecCs|�d�dS�N�detachr\rarArArBr��szBufferedIOBase.detachN)r)r)
rMrNrOr�r�r�r�r�r�r�rArArArBr��s
r�c@s�eZdZdd�Zd#dd�Zdd�Zd$d d
�Zdd�Zd
d�Zdd�Z dd�Z
edd��Zedd��Z
edd��Zedd��Zdd�Zdd�Zdd �Zd!d"�ZdS)%�_BufferedIOMixincCs
||_dSrQ��_raw�rIr=rArArB�__init__sz_BufferedIOMixin.__init__rcCs"|j�||�}|dkrtd��|S)Nrz#seek() returned an invalid position)r=r[r.)rIr^r_Znew_positionrArArBr[sz_BufferedIOMixin.seekcCs|j��}|dkrtd��|S)Nrz#tell() returned an invalid position)r=rbr.rerArArBrbs
z_BufferedIOMixin.tellNcCs$|��|dkr|��}|j�|�SrQ)rhrbr=rdrerArArBrd$sz_BufferedIOMixin.truncatecCs|jrtd��|j��dS)N�flush on closed file)rjr#r=rhrarArArBrh2sz_BufferedIOMixin.flushcCs.|jdk r*|js*z|��W5|j��XdSrQ)r=rjr5rhrarArArBr57sz_BufferedIOMixin.closecCs*|jdkrtd��|��|j}d|_|S)Nzraw stream already detached)r=r#rhr�r�rArArBr�?s
z_BufferedIOMixin.detachcCs
|j��SrQ)r=rnrarArArBrnIsz_BufferedIOMixin.seekablecCs|jSrQr�rarArArBr=Lsz_BufferedIOMixin.rawcCs|jjSrQ)r=rjrarArArBrjPsz_BufferedIOMixin.closedcCs|jjSrQ)r=rYrarArArBrYTsz_BufferedIOMixin.namecCs|jjSrQ)r=r4rarArArBr4Xsz_BufferedIOMixin.modecCstd|jj�d���dS�Nzcannot pickle z object�r rXrMrarArArB�__getstate__\sz_BufferedIOMixin.__getstate__cCsN|jj}|jj}z
|j}Wn tk
r:d�||�YSXd�|||�SdS)Nz<{}.{}>z<{}.{} name={!r}>)rXrNrOrYr/�format)rI�modnameZclsnamerYrArArB�__repr___s
z_BufferedIOMixin.__repr__cCs
|j��SrQ)r=r,rarArArBr,ksz_BufferedIOMixin.filenocCs
|j��SrQ)r=r)rarArArBr)nsz_BufferedIOMixin.isatty)r)N)rMrNrOr�r[rbrdrhr5r�rnr�r=rjrYr4r�r�r,r)rArArArBr�
s(
r�cs�eZdZdZd dd�Zdd�Zdd�Zdd �Z�fd
d�Zd!d
d�Z d"dd�Z
dd�Zd#dd�Zdd�Z
d$dd�Zdd�Zdd�Zdd�Z�ZS)%�BytesIONcCs&t�}|dk r||7}||_d|_dSr�)r��_buffer�_pos)rIZ
initial_bytes�bufrArArBr�zs
zBytesIO.__init__cCs|jrtd��|j��S)Nz__getstate__ on closed file)rjr#�__dict__�copyrarArArBr��szBytesIO.__getstate__cCs|jrtd��t|j�S)Nzgetvalue on closed file)rjr#rr�rarArArB�getvalue�szBytesIO.getvaluecCs|jrtd��t|j�S)Nzgetbuffer on closed file)rjr#r�r�rarArArB� getbuffer�szBytesIO.getbuffercs"|jdk r|j��t���dSrQ)r��clear�superr5ra�rXrArBr5�s
z
BytesIO.closercCs�|jrtd��|dkrd}n4z
|j}Wn"tk
rHt|�d���YnX|�}|dkrbt|j�}t|j�|jkrvdStt|j�|j|�}|j|j|�}||_t |�S)N�read from closed filerr�r�)
rjr#r�r/r r"r�r�r~r)rIr�r�ZnewposrrArArBr��s"
zBytesIO.readcCs
|�|�SrQ)r�r�rArArBr��sz
BytesIO.read1c Cs�|jrtd��t|t�r td��t|��}|j}W5QRX|dkrFdS|j}|t|j �krzd|t|j �}|j |7_ ||j |||�<|j|7_|S)N�write to closed file� can't write str to binary streamr�)
rjr#rrr r��nbytesr�r"r�)rIrZviewrr^ZpaddingrArArBr��s
z
BytesIO.writercCs�|jrtd��z
|j}Wn"tk
r:t|�d���YnX|�}|dkrh|dkr`td|f��||_nD|dkr�td|j|�|_n(|dkr�tdt|j�|�|_ntd��|jS)Nzseek on closed filer�r�negative seek position %rr
rzunsupported whence value) rjr#r�r/r r��maxr"r�)rIr^r_� pos_indexrArArBr[�s"
zBytesIO.seekcCs|jrtd��|jS)N�tell on closed file)rjr#r�rarArArBrb�szBytesIO.tellcCsx|jrtd��|dkr|j}nJz
|j}Wn"tk
rJt|�d���YnX|�}|dkrhtd|f��|j|d�=|S)Nztruncate on closed filer�rznegative truncate position %r)rjr#r�r�r/r r�)rIr^r�rArArBrd�s
zBytesIO.truncatecCs|jrtd��dS�NrwTrxrarArArBrr�szBytesIO.readablecCs|jrtd��dSr�rxrarArArBrt�szBytesIO.writablecCs|jrtd��dSr�rxrarArArBrn�szBytesIO.seekable)N)r)r)r)N)rMrNrOr�r�r�r�r�r5r�r�r�r[rbrdrrrtrn�
__classcell__rArAr�rBr�rs
r�c@steZdZefdd�Zdd�Zdd�Zddd �Zdd
d�Zdd
d�Z ddd�Z
ddd�Zdd�Zdd�Z
ddd�ZdS) r2cCsF|��std��t�||�|dkr,td��||_|��t�|_dS)Nz "raw" argument must be readable.r�invalid buffer size) rrr.r�r�r#�buffer_size�_reset_read_buf�Lock�
_read_lock�rIr=r�rArArBr�szBufferedReader.__init__cCs
|j��SrQ)r=rrrarArArBrrszBufferedReader.readablecCsd|_d|_dS)Nr�r)� _read_buf� _read_posrarArArBr�szBufferedReader._reset_read_bufNc
Cs@|dk r|dkrtd��|j�|�|�W5QR�SQRXdS)Nrzinvalid number of bytes to read)r#r��_read_unlockedr�rArArBr� szBufferedReader.readcCs�d}d}|j}|j}|dks$|dkr�|��t|jd�rj|j��}|dkrZ||d�pXdS||d�|S||d�g}d}|j��}||kr�|}q�|t|�7}|�|�q|d� |�p�|St|�|} || kr�|j|7_||||�S||d�g}t
|j|�}
| |k�rH|j�|
�}||k�r.|}�qH| t|�7} |�|��qt|| �}d� |�}||d�|_d|_|�r�|d|�S|S)Nr�)r�Nrr�r)
r�r�r�r�r=r�r�r"r��joinr�r�r~)rIrZ
nodata_valZempty_valuesr�r^�chunkZchunksZcurrent_size�availZwanted�outrArArBr�-sL
zBufferedReader._read_unlockedrc
Cs(|j�|�|�W5QR�SQRXdSrQ)r��_peek_unlockedr�rArArBr{aszBufferedReader.peekcCsrt||j�}t|j�|j}||ks,|dkrb|j|}|j�|�}|rb|j|jd�||_d|_|j|jd�Sr�)r~r�r"r�r�r=r�)rIrZwantZhaveZto_readZcurrentrArArBr�ks
zBufferedReader._peek_unlockedrc
Cs^|dkr|j}|dkrdS|j�4|�d�|�t|t|j�|j��W5QR�SQRXdS)Nrr�r
)r�r�r�r�r~r"r�r�r�rArArBr�vs
�zBufferedReader.read1c Cs
t|t�st|�}|jdkr dS|�d�}d}|j��|t|�kr�tt|j�|jt|��}|r�|j|j|j|�||||�<|j|7_||7}|t|�kr�q�t|�||j kr�|j
�||d��}|s�q�||7}n|r�|s�|�d�s�q�|r6|r6q�q6W5QRX|S)Nrr�r
)
rr�r�r�r�r"r~r�r�r�r=r�r�)rIr�r��writtenr�rrArArBr��s6
�
zBufferedReader._readintocCst�|�t|j�|jSrQ)r�rbr"r�r�rarArArBrb�szBufferedReader.tellc
Csd|tkrtd��|j�D|dkr4|t|j�|j8}t�|||�}|��|W5QR�SQRXdS)N�invalid whence valuer
) �valid_seek_flagsr#r�r"r�r�r�r[r�r]rArArBr[�szBufferedReader.seek)N)N)r)r)r)r)rMrNrOr*r�rrr�r�r�r{r�r�r�rbr[rArArArBr2s
4
.r2c@s\eZdZefdd�Zdd�Zdd�Zddd �Zd
d�Zdd
�Z dd�Z
ddd�Zdd�ZdS)r1cCsF|��std��t�||�|dkr,td��||_t�|_t�|_ dS)Nz "raw" argument must be writable.rr�)
rtr.r�r�r#r�r��
_write_bufr��_write_lockr�rArArBr��szBufferedWriter.__init__cCs
|j��SrQ)r=rtrarArArBrt�szBufferedWriter.writablecCst|t�rtd��|j��|jr(td��t|j�|jkr@|� �t|j�}|j�
|�t|j�|}t|j�|jkr�z|� �Wnltk
r�}zNt|j�|jkr�t|j�|j}||8}|jd|j�|_t|j|j
|��W5d}~XYnX|W5QR�SQRXdS)Nr�r�)rrr r�rjr#r"r�r��_flush_unlocked�extend�BlockingIOError�errno�strerror)rIrZbeforer��eZoveragerArArBr��s(
"zBufferedWriter.writeNc
CsD|j�4|��|dkr"|j��}|j�|�W5QR�SQRXdSrQ)r�r�r=rbrdrerArArBrd�s
zBufferedWriter.truncatec Cs|j�|��W5QRXdSrQ)r�r�rarArArBrh�szBufferedWriter.flushcCs�|jrtd��|jr�z|j�|j�}Wntk
rBtd��YnX|dkrZttjdd��|t |j�ksp|dkrxt
d��|jd|�=qdS)Nr�zHself.raw should implement RawIOBase: it should not raise BlockingIOErrorz)write could not complete without blockingrz*write() returned incorrect number of bytes)rjr#r�r=r�r��RuntimeErrorr�ZEAGAINr"r.�rIrrArArBr�s �zBufferedWriter._flush_unlockedcCst�|�t|j�SrQ)r�rbr"r�rarArArBrbszBufferedWriter.tellrc
CsD|tkrtd��|j�$|��t�|||�W5QR�SQRXdS)Nr�)r�r#r�r�r�r[r]rArArBr[s
zBufferedWriter.seekcCs`|j�$|jdks|jr&W5QR�dSW5QRXz|��W5|j�|j��W5QRXXdSrQ)r�r=rjr5rhrarArArBr5szBufferedWriter.close)N)r)
rMrNrOr*r�rtr�rdrhr�rbr[r5rArArArBr1�s
r1c@s�eZdZefdd�Zddd�Zdd�Zdd �Zddd�Zd d
d�Z dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zedd��ZdS)!�BufferedRWPaircCs<|��std��|��s td��t||�|_t||�|_dS)Nz#"reader" argument must be readable.z#"writer" argument must be writable.)rrr.rtr2�readerr1�writer)rIr�r�r�rArArBr�<szBufferedRWPair.__init__rcCs|dkrd}|j�|�S�Nr)r�r�r�rArArBr�JszBufferedRWPair.readcCs|j�|�SrQ)r�r�r�rArArBr�OszBufferedRWPair.readintocCs|j�|�SrQ)r�r�r�rArArBr�RszBufferedRWPair.writercCs|j�|�SrQ)r�r{r�rArArBr{UszBufferedRWPair.peekcCs|j�|�SrQ)r�r�r�rArArBr�XszBufferedRWPair.read1cCs|j�|�SrQ)r�r�r�rArArBr�[szBufferedRWPair.readinto1cCs
|j��SrQ)r�rrrarArArBrr^szBufferedRWPair.readablecCs
|j��SrQ)r�rtrarArArBrtaszBufferedRWPair.writablecCs
|j��SrQ)r�rhrarArArBrhdszBufferedRWPair.flushcCs z|j��W5|j��XdSrQ)r�r5r�rarArArBr5gszBufferedRWPair.closecCs|j��p|j��SrQ)r�r)r�rarArArBr)mszBufferedRWPair.isattycCs|jjSrQ)r�rjrarArArBrjpszBufferedRWPair.closedN)r)r)r)rMrNrOr*r�r�r�r�r{r�r�rrrtrhr5r)r�rjrArArArBr�,s
r�c@sjeZdZefdd�Zddd�Zdd�Zdd d
�Zddd�Zd
d�Z ddd�Z
ddd�Zdd�Zdd�Z
dS)r0cCs(|��t�|||�t�|||�dSrQ)rqr2r�r1r�rArArBr�~szBufferedRandom.__init__rc Cs�|tkrtd��|��|jrJ|j� |j�|jt|j�d�W5QRX|j�||�}|j�|� �W5QRX|dkr�t
d��|S)Nr�r
rz seek() returned invalid position)r�r#rhr�r�r=r[r�r"r�r.r]rArArBr[�s$zBufferedRandom.seekcCs|jrt�|�St�|�SdSrQ)r�r1rbr2rarArArBrb�s
zBufferedRandom.tellNcCs|dkr|��}t�||�SrQ)rbr1rdrerArArBrd�szBufferedRandom.truncatecCs |dkrd}|��t�||�Sr�)rhr2r�r�rArArBr��szBufferedRandom.readcCs|��t�||�SrQ)rhr2r�r�rArArBr��szBufferedRandom.readintocCs|��t�||�SrQ)rhr2r{r�rArArBr{�szBufferedRandom.peekrcCs|��t�||�SrQ)rhr2r�r�rArArBr��szBufferedRandom.read1cCs|��t�||�SrQ)rhr2r�r�rArArBr��szBufferedRandom.readinto1c CsF|jr:|j�(|j�|jt|j�d�|��W5QRXt�||�Sr�) r�r�r=r[r�r"r�r1r�r�rArArBr��s
zBufferedRandom.write)r)N)N)r)r)rMrNrOr*r�r[rbrdr�r�r{r�r�r�rArArArBr0us
r0cs�eZdZdZdZdZdZdZdZdZ d0dd�Z
dd �Zd
d�Zdd
�Z
dd�Zd1dd�Zd2dd�Zdd�Zdd�Zdd�Zefdd�Zdd�Zd3dd�Z�fd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zed,d-��Zed.d/��Z �Z!S)4r(rFNTr
c
CsB|jdkr*z|jrt�|j�W5d|_Xt|t�r<td��t|t�r\|}|dkr`td��nd}t|t �sxtd|f��t
|�t
d�ks�td|f��tdd�|D��d ks�|�d
�d kr�td��d|kr�d
|_
d
|_tjtjB}nTd|kr�d
|_d}n@d|k�rd
|_tjtjB}n"d|k�r8d
|_d
|_tjtjB}d
|k�rNd
|_d
|_|j�rj|j�rj|tjO}n|j�r~|tjO}n
|tjO}|ttdd�O}ttdd��p�ttdd�}||O}d}�zT|dk�r:|�s�td��|dk�r�t�||d�}n0|||�}t|t��std��|dk�r$td��|}|�s:t�|d�||_t�|�} z(t�| j��rpt t!j"t�#t!j"�|��Wnt$k
�r�YnXt| dd�|_%|j%d k�r�t&|_%t'�r�t'|tj(�||_)|j�rzt�*|dt+�Wn4tk
�r}
z|
j!t!j,k�r�W5d}
~
XYnXWn"|dk �r0t�|��YnX||_dS)Nrrz$integer argument expected, got floatznegative file descriptorzinvalid mode: %szxrwab+css|]}|dkVqdS)ZrwaxNrA)�.0�crArArB� <genexpr>�sz"FileIO.__init__.<locals>.<genexpr>r
rzKMust have exactly one of create/read/write/append mode and at most one plusrTr
rr�O_BINARYZO_NOINHERIT� O_CLOEXECz'Cannot use closefd=False with file namei�zexpected integer from openerzNegative file descriptorFr-)-�_fd�_closefdrr5r�floatr rr#rr!�sum�count�_created� _writable�O_EXCL�O_CREAT� _readable�O_TRUNC�
_appending�O_APPEND�O_RDWR�O_RDONLY�O_WRONLY�getattrrCr.�set_inheritabler+�stat�S_ISDIR�st_mode�IsADirectoryErrorr�ZEISDIRr�r/�_blksizer*�_setmoder�rY�lseekr ZESPIPE)rIr6r4r;r�fd�flagsZnoinherit_flagZowned_fdZfdfstatr�rArArBr��s�
$
�
�
zFileIO.__init__cCsB|jdkr>|jr>|js>ddl}|jd|ftd|d�|��dS)Nrzunclosed file %rr)�
stacklevel�source)r�r�rjr$r%�ResourceWarningr5)rIr$rArArBrlAs�zFileIO.__del__cCstd|jj�d���dSr�r�rarArArBr�HszFileIO.__getstate__cCspd|jj|jjf}|jr"d|Sz
|j}Wn*tk
rVd||j|j|jfYSXd|||j|jfSdS)Nz%s.%sz
<%s [closed]>z<%s fd=%d mode=%r closefd=%r>z<%s name=%r mode=%r closefd=%r>) rXrNrOrjrYr/r�r4r�)rI�
class_namerYrArArBr�Ks�
�
�zFileIO.__repr__cCs|jstd��dS)NzFile not open for reading)r�rVrarArArBrsYszFileIO._checkReadablecCs|jstd��dS)NzFile not open for writing)r�rVrorArArBru]szFileIO._checkWritablecCsT|��|��|dks |dkr(|��Szt�|j|�WStk
rNYdSXdSr�)rgrsr�rr�r�r�r�rArArBr�aszFileIO.readcCs�|��|��t}z6t�|jdt�}t�|j�j}||krH||d}Wnt k
r^YnXt
�}t|�|kr�t|�}|t|t�7}|t|�}zt�
|j|�}Wntk
r�|r�Yq�YdSX|s�q�||7}qft|�Sr`)rgrsr*rr
r�rr+�st_sizer.r�r"r�r�r�r)rI�bufsizer^�endr>rr�rArArBr�qs2
zFileIO.readallcCs4t|��d�}|�t|��}t|�}||d|�<|Sr�)r�r�r�r")rIr�mr�rrArArBr��s
zFileIO.readintocCs<|��|��zt�|j|�WStk
r6YdSXdSrQ)rgrurr�r�r�r�rArArBr��szFileIO.writecCs*t|t�rtd��|��t�|j||�S)Nzan integer is required)rr�r rgrr
r�r]rArArBr[�s
zFileIO.seekcCs|��t�|jdt�Sr�)rgrr
r�rrarArArBrb�szFileIO.tellcCs2|��|��|dkr |��}t�|j|�|SrQ)rgrurbr� ftruncater�r�rArArBrd�szFileIO.truncatecs.|js*z|jrt�|j�W5t���XdSrQ)rjr�r5r�rr�rar�rArBr5�s
zFileIO.closecCsF|��|jdkr@z|��Wntk
r8d|_YnXd|_|jS)NFT)rg� _seekablerbr.rarArArBrn�s
zFileIO.seekablecCs|��|jSrQ)rgr�rarArArBrr�szFileIO.readablecCs|��|jSrQ)rgr�rarArArBrt�szFileIO.writablecCs|��|jSrQ)rgr�rarArArBr,�sz
FileIO.filenocCs|��t�|j�SrQ)rgrr)r�rarArArBr)�sz
FileIO.isattycCs|jSrQ)r�rarArArBr;�szFileIO.closefdcCsJ|jr|jrdSdSn0|jr,|jr&dSdSn|jrB|jr<dSdSndSdS)Nzxb+Zxbzab+Zabzrb+rD�wb)r�r�rr�rarArArBr4szFileIO.mode)r
TN)N)N)N)"rMrNrOr�r�r�r�rrr�r�rlr�r�rsrur�r�r�r�rr[rbrdr5rnrrrtr,r)r�r;r4r�rArAr�rBr(�s<
y
#
r(c@s\eZdZddd�Zdd�Zddd�Zd d
�Zdd�Zed
d��Z edd��Z
edd��ZdS)�
TextIOBasercCs|�d�dSr�r\r�rArArBr�szTextIOBase.readcCs|�d�dSr�r\)rI�srArArBr�(szTextIOBase.writeNcCs|�d�dSrcr\rerArArBrd,szTextIOBase.truncatecCs|�d�dS)Nr�r\rarArArBr�0szTextIOBase.readlinecCs|�d�dSr�r\rarArArBr�7szTextIOBase.detachcCsdSrQrArarArArBr8@szTextIOBase.encodingcCsdSrQrArarArArB�newlinesEszTextIOBase.newlinescCsdSrQrArarArArBr9OszTextIOBase.errors)r)N)rMrNrOr�r�rdr�r�r�r8rr9rArArArBrs
rc@sPeZdZddd�Zddd�Zdd�Zd d
�Zdd�Zd
ZdZ dZ
edd��ZdS)�IncrementalNewlineDecoder�strictcCs,tjj||d�||_||_d|_d|_dS)N)r9rF)�codecs�IncrementalDecoderr�� translate�decoder�seennl� pendingcr)rIr#r"r9rArArBr�`s
z"IncrementalNewlineDecoder.__init__FcCs�|jdkr|}n|jj||d�}|jr<|s.|r<d|}d|_|�d�r\|s\|dd�}d|_|�d�}|�d�|}|�d�|}|j|o�|j|o�|jB|o�|jBO_|j r�|r�|�
dd�}|r�|�
dd�}|S)N��final�
FrT�
�
)r#�decoder%r�r�r$�_LF�_CR�_CRLFr"�replace)rI�inputr'�outputZcrlfZcrZlfrArArBr+gs*
�z IncrementalNewlineDecoder.decodecCs@|jdkrd}d}n|j��\}}|dK}|jr8|dO}||fS)Nr�rr
)r#�getstater%)rIr��flagrArArBr2�s
z"IncrementalNewlineDecoder.getstatecCs8|\}}t|d@�|_|jdk r4|j�||d?f�dSr�)�boolr%r#�setstate)rI�stater�r3rArArBr5�s
z"IncrementalNewlineDecoder.setstatecCs$d|_d|_|jdk r |j��dS)NrF)r$r%r#�resetrarArArBr7�s
zIncrementalNewlineDecoder.resetr
r�cCs
d|jS)N)Nr*r()r(r*r))r*r))r(r))r(r*r))r$rarArArBr�s�z"IncrementalNewlineDecoder.newlinesN)r)F)
rMrNrOr�r+r2r5r7r,r-r.r�rrArArArBrYs
rc@sreZdZdZdZdNdd�Zdd�ZdOdd �Zd
d�Ze dd
��Z
e dd��Ze dd��Ze dd��Z
e dd��Zddeddd�dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Ze d#d$��Ze d%d&��Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�ZdPd3d4�Zd5d6�Zd7d8�Z dQd:d;�Z!d<d=�Z"d>d?�Z#dRd@dA�Z$dBdC�Z%dSdDdE�Z&dTdFdG�Z'dHdI�Z(dUdJdK�Z)e dLdM��Z*dS)Vr3iNFc Cs|�|�|dkrvzt�|���}Wnttfk
r<YnX|dkrvzddl}Wntk
rjd}YnX|�d�}t |t
�s�td|��t�
|�js�d}t||��|dkr�d}nt |t
�s�td|��||_d|_d|_d|_|j��|_|_t|jd �|_|�|||||�dS)
Nr�asciiFrzG%r is not a text encoding; use codecs.open() to handle arbitrary codecsrrrr�)�_check_newliner�device_encodingr,r/rV�locale�ImportErrorZgetpreferredencodingrrr#r �lookup�_is_text_encoding�LookupErrorr��_decoded_chars�_decoded_chars_used� _snapshotr@rnr�_tellingr��
_has_read1�
_configure) rIr@r8r9r:r?�
write_throughr<rprArArBr��s>
�zTextIOWrapper.__init__cCs>|dk r$t|t�s$tdt|�f��|dkr:td|f��dS)Nzillegal newline type: %r)Nrr*r(r)zillegal newline value: %r)rrr �typer#)rIr:rArArBr:�szTextIOWrapper._check_newlinecCs�||_||_d|_d|_d|_||_|dk|_||_|dk|_|pHt j
|_||_||_
|jr�|��r�|j��}|dkr�z|���d�Wntk
r�YnXdS)N�rr)� _encoding�_errors�_encoder�_decoder� _b2cratio�_readuniversal�_readtranslate�_readnl�_writetranslater�linesep�_writenl�_line_buffering�_write_throughrrtr@rb�_get_encoderr5r@)rIr8r9r:r?rG�positionrArArBrF�s&
zTextIOWrapper._configurecCs�d�|jj|jj�}z
|j}Wntk
r2YnX|d�|�7}z
|j}Wntk
r`YnX|d�|�7}|d�|j�S)Nz<{}.{}z name={0!r}z mode={0!r}z encoding={0!r}>)r�rXrNrOrYr/r4r8)rIr>rYr4rArArBr�!s
�
zTextIOWrapper.__repr__cCs|jSrQ)rJrarArArBr82szTextIOWrapper.encodingcCs|jSrQ)rKrarArArBr96szTextIOWrapper.errorscCs|jSrQ)rUrarArArBr?:szTextIOWrapper.line_bufferingcCs|jSrQ)rVrarArArBrG>szTextIOWrapper.write_throughcCs|jSrQ)r�rarArArBr@BszTextIOWrapper.buffer)r8r9r:r?rGcCs�|jdk r*|dk s"|dk s"|tk r*td��|dkrH|dkrB|j}q^d}nt|t�s^td|��|dkrn|j}nt|t�s�td|��|tkr�|j}|� |�|dkr�|j
}|dkr�|j}|��|�
|||||�dS)NzPIt is not possible to set the encoding or newline of stream after the first readrrr)rM�EllipsisrVrKrrr rJrQr:r?rGrhrF)rIr8r9r:r?rGrArArB�reconfigureFs@
����
�zTextIOWrapper.reconfigurecCs|jrtd��|jSrv)rjr#rrarArArBrnoszTextIOWrapper.seekablecCs
|j��SrQ)r@rrrarArArBrrtszTextIOWrapper.readablecCs
|j��SrQ)r@rtrarArArBrtwszTextIOWrapper.writablecCs|j��|j|_dSrQ)r@rhrrDrarArArBrhzs
zTextIOWrapper.flushcCs.|jdk r*|js*z|��W5|j��XdSrQ)r@rjr5rhrarArArBr5~szTextIOWrapper.closecCs|jjSrQ)r@rjrarArArBrj�szTextIOWrapper.closedcCs|jjSrQ)r@rYrarArArBrY�szTextIOWrapper.namecCs
|j��SrQ)r@r,rarArArBr,�szTextIOWrapper.filenocCs
|j��SrQ)r@r)rarArArBr)�szTextIOWrapper.isattycCs�|jrtd��t|t�s(td|jj��t|�}|js<|j oBd|k}|rf|jrf|j
dkrf|�d|j
�}|jpr|�
�}|�|�}|j�|�|j r�|s�d|kr�|��|�d�d|_|jr�|j��|S)Nr�zcan't write %s to text streamr*r(r)rjr#rrr rXrMr"rRrUrTr/rLrW�encoder@r�rh�_set_decoded_charsrCrMr7)rIrZlengthZhaslf�encoderrrArArBr��s(
�
zTextIOWrapper.writecCst�|j�}||j�|_|jSrQ)r �getincrementalencoderrJrKrL)rIZmake_encoderrArArBrW�szTextIOWrapper._get_encodercCs2t�|j�}||j�}|jr(t||j�}||_|SrQ)r �getincrementaldecoderrJrKrOrrPrM)rIZmake_decoderr#rArArB�_get_decoder�s
zTextIOWrapper._get_decodercCs||_d|_dSr�)rArB)rI�charsrArArBr\�sz TextIOWrapper._set_decoded_charscCsF|j}|dkr|j|d�}n|j|||�}|jt|�7_|SrQ)rBrAr")rIr�offsetrarArArB�_get_decoded_chars�sz TextIOWrapper._get_decoded_charscCs$|j|krtd��|j|8_dS)Nz"rewind decoded_chars out of bounds)rB�AssertionErrorr�rArArB�_rewind_decoded_chars�s
z#TextIOWrapper._rewind_decoded_charscCs�|jdkrtd��|jr&|j��\}}|jr<|j�|j�}n|j�|j�}|}|j� ||�}|�
|�|r�t|�t|j�|_
nd|_
|jr�|||f|_|S)Nz
no decoderrI)rMr#rDr2rEr@r��_CHUNK_SIZEr�r+r\r"rArNrC)rI�
dec_buffer� dec_flags�input_chunk�eofZ
decoded_charsrArArB�_read_chunk�s
zTextIOWrapper._read_chunkrcCs(||d>B|d>B|d>Bt|�d>BS)N�@���)r4)rIrXrh�
bytes_to_feed�need_eof�
chars_to_skiprArArB�_pack_cookie�s
�
�zTextIOWrapper._pack_cookiecCsFt|d�\}}t|d�\}}t|d�\}}t|d�\}}|||||fS)Nl)�divmod)rIZbigint�restrXrhrprqrrrArArB�_unpack_cookie s
zTextIOWrapper._unpack_cookiec Cs@|jstd��|jstd��|��|j��}|j}|dksF|jdkrX|j rTt
d��|S|j\}}|t|�8}|j}|dkr�|�
||�S|��}�z�t|j|�}d}|dk�r"|�d|f�t|�|d|���} | |k�r|��\}
}|
s�|}|| 8}�q4|t|
�8}d}q�||8}|d}q�d}|�d|f�||}|}
|dk�rZ|�
||
�W��Sd}d}d}t|t|��D]x}|d7}|t|�|||d���7}|��\}}|�s�||k�r�||7}||8}|dd}
}}||k�rt�q�qt|t|jddd ��7}d}||k�rtd
��|�
||
|||�W�S|�|�XdS)N�!underlying stream is not seekablez(telling position disabled by next() callzpending decoded textrr
r�rTr&z'can't reconstruct logical file position)rrVrDr.rhr@rbrMrCrArdr"rBrsr2r5rrNr+�range)rIrXr#rhZ
next_inputrrZsaved_stateZ
skip_bytesZ skip_backrr�d� start_posZstart_flagsZ bytes_fedrqZ
chars_decoded�irgrArArBrb
s�
�zTextIOWrapper.tellcCs$|��|dkr|��}|j�|�SrQ)rhrbr@rdrerArArBrdm szTextIOWrapper.truncatecCs*|jdkrtd��|��|j}d|_|S)Nzbuffer is already detached)r@r#rhr�)rIr@rArArBr�s s
zTextIOWrapper.detachcs��fdd�}�jrtd���js(td��|tkrN|dkr@td��d}���}nZ|tkr�|dkrftd������j� d|�}��
d�d�_�jr��j�
�||�|S|dkr�td |f��|dkr�td
|f�������|�\}}}}} �j� |���
d�d�_|dk�r*�j�r*�j�
�n@�j�s>|�s>| �rj�j�pL����_�j�d|f�|df�_| �r��j�|�}
��
�j�|
|��||
f�_t�j�| k�r�td��| �_||�|S)
NcsHz�jp���}Wntk
r&YnX|dkr<|�d�n|��dSr�)rLrWr@r5r7)rXr]rarArB�_reset_encoder| sz*TextIOWrapper.seek.<locals>._reset_encoderr�rwrz#can't do nonzero cur-relative seeksz#can't do nonzero end-relative seeksrzunsupported whence (%r)r�r�z#can't restore logical file position)rjr#rrVrrbr rhr@r[r\rCrMr7rvr`r5r�r+r"rAr.rB)rIZcookier_r|rXrzrhrprqrrrirArarBr[{ s`
�
�
zTextIOWrapper.seekcCs�|��|dkrd}n4z
|j}Wn"tk
rBt|�d���YnX|�}|jpV|��}|dkr�|��|j|j� �dd�}|�
d�d|_|Sd}|�|�}t|�|kr�|s�|�
�}||�|t|��7}q�|SdS)Nrr�rTr&rF)rsr�r/r rMr`rcr+r@r�r\rCr"rk)rIr�r�r#r>rjrArArBr�� s,
�
zTextIOWrapper.readcCs(d|_|��}|s$d|_|j|_t�|Srm)rDr�rCrr�r�rArArBr�� szTextIOWrapper.__next__c Cs
|jrtd��|dkrd}n4z
|j}Wn"tk
rHt|�d���YnX|�}|��}d}|jsj|��d}}|jr�|� d|�}|dkr�|d}�q�nt
|�}n�|j�rF|� d|�}|� d|�}|dkr�|dkr�t
|�}n|d}�q�nX|dk�r|d}�q�n@||k�r|d}�q�n(||dk�r8|d}�q�n|d}�q�n(|� |j�}|dk�rn|t
|j�}�q�|dk�r�t
|�|k�r�|}�q�|�
��r�|j�r��q��q�|j�r�||��7}qr|�d �d|_|Sqr|dk�r�||k�r�|}|�t
|�|�|d|�S)
Nr�rr�rr*r
r(rr)rjr#r�r/r rcrMr`rPr}r"rOrQrkrAr\rCre) rIr�r�r��startr^�endposZnlposZcrposrArArBr�� st
zTextIOWrapper.readlinecCs|jr|jjSdSrQ)rMrrarArArBrH
szTextIOWrapper.newlines)NNNFF)NNNFF)N)rrrr)N)r)N)N)+rMrNrOrfr�r�r:rFr�r�r8r9r?rGr@rYrZrnrrrtrhr5rjrYr,r)r�rWr`r\rcrerkrsrvrbrdr�r[r�r�r�rrArArArBr3�sz�
(�
$
�)
*�
c
K
]r3csNeZdZd�fdd� Zdd�Zdd�Zed d
��Zedd��Zd
d�Z �Z
S)�StringIOrr*csftt|�jt�dd|d�|dkr(d|_|dk rbt|t�sNtd�t |�j
���|�|�|�d�dS)Nzutf-8�
surrogatepass)r8r9r:Fz*initial_value must be str or None, not {0}r)
r�rr�r�rRrrr r�rHrMr�r[)rIZ
initial_valuer:r�rArBr�T
s�
�
zStringIO.__init__c CsP|��|jp|��}|��}|��z|j|j��dd�W�S|�|�XdS)NTr&) rhrMr`r2r7r5r+r@r�)rIr#Z old_staterArArBr�d
szStringIO.getvaluecCs
t�|�SrQ)�objectr�rarArArBr�n
szStringIO.__repr__cCsdSrQrArarArArBr9s
szStringIO.errorscCsdSrQrArarArArBr8w
szStringIO.encodingcCs|�d�dSr�r\rarArArBr�{
szStringIO.detach)rr*)rMrNrOr�r�r�r�r9r8r�r�rArAr�rBrM
s
r)r
rNNNTN)7r�abcr r�r�sys�_threadrr��platformZmsvcrtrr�iorrrr r�r��addr� SEEK_DATAr*r�r�dev_moderkrCrF� open_coder/rGrPrVr.r#�ABCMetarW�registerr��_ior(r�r�r�r2r1r�r0rr!rr3rrArArArB�<module>s�
�
[
$=
ghCiIJY@U$
?>