Your IP : 18.117.183.118


Current Path : /lib64/python3.6/__pycache__/
Upload File :
Current File : //lib64/python3.6/__pycache__/_pyio.cpython-36.opt-2.pyc

3


 \!X�@s^ddlZddlZddlZddlZddlZddlZyddlmZWn e	k
r`ddl
mZYnXejd4krzddlm
ZndZddlZddlmZmZmZmZdddhZeed	�r�ejej�ejej�d5ZeZd7dd�ZGdd�d�ZGdd�d�Zy
ejZWn(ek
�r*Gdd�de e!�ZYnXGdd�dej"d�Z#ej#j$e#�Gdd�de#�Z%ej%j$e%�ddl&m'Z'e%j$e'�Gdd�de#�Z(ej(j$e(�Gdd�de(�Z)Gd d!�d!e(�Z*Gd"d#�d#e)�Z+Gd$d%�d%e)�Z,Gd&d'�d'e(�Z-Gd(d)�d)e,e+�Z.Gd*d+�d+e%�Z'Gd,d-�d-e#�Z/ej/j$e/�Gd.d/�d/ej0�Z1Gd0d1�d1e/�Z2Gd2d3�d3e2�Z3dS)8�N)�
allocate_lock�win32�cygwin)�setmode)�__all__�SEEK_SET�SEEK_CUR�SEEK_END���	SEEK_HOLE�i�rTcCs~t|t�stj|�}t|tttf�s0td|��t|t�sFtd|��t|t�s\td|��|dk	r|t|t�r|td|��|dk	r�t|t�r�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�rH|	�s&|�s&|�s&|
�r.t	d��ddl
}|jdtd�d}
|�r\|�r\t	d��|	|
||dk�rzt	d��|	�p�|
�p�|�p�|�s�t	d��|�r�|dk	�r�t	d��|�r�|dk	�r�t	d��|�r�|dk	�r�t	d��t
||	�r�d�p�d|
�rd�pd|�rd	�pd|�r d
�p"d|
�r0d�p2d||d�}|}�yd}|dk�sh|dk�rp|j��rpd!}d}|dk�r�t}ytj|j��j}Wnttfk
�r�YnX|dk�r�|}|dk�r�t	d��|dk�r�|�r�|St	d��|
�r�t||�}n<|	�s|�s|�rt||�}n|
�r,t||�}nt	d |��|}|�rF|St|||||�}|}||_|S|j��YnXdS)"Nzinvalid file: %rzinvalid mode: %rzinvalid buffering: %rzinvalid encoding: %rzinvalid 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 argument�)�openerFzinvalid buffering sizezcan't have unbuffered text I/Ozunknown mode: %r���)�
isinstance�int�os�fspath�str�bytes�	TypeError�set�len�
ValueError�warnings�warn�DeprecationWarning�FileIO�isatty�DEFAULT_BUFFER_SIZE�fstat�fileno�
st_blksize�OSError�AttributeError�BufferedRandom�BufferedWriter�BufferedReader�
TextIOWrapper�mode�close)�filer2�	buffering�encoding�errors�newline�closefdrZmodesZcreatingZreadingZwritingZ	appendingZupdating�textZbinaryr#�raw�result�line_bufferingZbs�buffer�r?�/usr/lib64/python3.6/_pyio.py�open(s�{




>




rAc@seZdZdd�ZdS)�
DocDescriptorcCs
dtjS)Nz\open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)

)rA�__doc__)�self�obj�typr?r?r@�__get__�szDocDescriptor.__get__N)�__name__�
__module__�__qualname__rGr?r?r?r@rB�srBc@seZdZe�Zdd�ZdS)�OpenWrappercOs
t||�S)N)rA)�cls�args�kwargsr?r?r@�__new__szOpenWrapper.__new__N)rHrIrJrBrCrOr?r?r?r@rKsrKc@seZdZdS)�UnsupportedOperationN)rHrIrJr?r?r?r@rPsrPc@s�eZdZdd�Zd5dd�Zdd�Zd6d	d
�Zdd�Zd
Zdd�Z	dd�Z
dd�Zd7dd�Zdd�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)rP�	__class__rH)rD�namer?r?r@�_unsupported@szIOBase._unsupportedrcCs|jd�dS)N�seek)rT)rD�pos�whencer?r?r@rUGszIOBase.seekcCs|jdd�S)Nrr
)rU)rDr?r?r@�tellWszIOBase.tellNcCs|jd�dS)N�truncate)rT)rDrVr?r?r@rY[szIOBase.truncatecCs|j�dS)N)�_checkClosed)rDr?r?r@�flusheszIOBase.flushFcCs |jsz|j�Wdd|_XdS)NT)�_IOBase__closedr[)rDr?r?r@r3oszIOBase.closec	Csy|j�WnYnXdS)N)r3)rDr?r?r@�__del__zszIOBase.__del__cCsdS)NFr?)rDr?r?r@�seekable�szIOBase.seekablecCs |j�st|dkrdn|��dS)NzFile or stream is not seekable.)r^rP)rD�msgr?r?r@�_checkSeekable�szIOBase._checkSeekablecCsdS)NFr?)rDr?r?r@�readable�szIOBase.readablecCs |j�st|dkrdn|��dS)NzFile or stream is not readable.)rarP)rDr_r?r?r@�_checkReadable�szIOBase._checkReadablecCsdS)NFr?)rDr?r?r@�writable�szIOBase.writablecCs |j�st|dkrdn|��dS)NzFile or stream is not writable.)rcrP)rDr_r?r?r@�_checkWritable�szIOBase._checkWritablecCs|jS)N)r\)rDr?r?r@�closed�sz
IOBase.closedcCs|jrt|dkrdn|��dS)NzI/O operation on closed file.)rer")rDr_r?r?r@rZ�szIOBase._checkClosedcCs|j�|S)N)rZ)rDr?r?r@�	__enter__�szIOBase.__enter__cGs|j�dS)N)r3)rDrMr?r?r@�__exit__�szIOBase.__exit__cCs|jd�dS)Nr*)rT)rDr?r?r@r*�sz
IOBase.filenocCs|j�dS)NF)rZ)rDr?r?r@r'�sz
IOBase.isattyr
cs�t�d�r��fdd�}ndd�}�dkr0d	�nt�t�sBtd��t�}x>�dks^t|��kr��j|��}|spP||7}|jd�rJPqJWt|�S)
N�peekcs>�jd�}|sdS|jd�dp&t|�}�dkr:t|��}|S)Nr
�
r)rh�findr!�min)Z	readahead�n)rD�sizer?r@�
nreadahead�s

z#IOBase.readline.<locals>.nreadaheadcSsdS)Nr
r?r?r?r?r@rn�sr
zsize must be an integerrrir)	�hasattrrrr�	bytearrayr!�read�endswithr)rDrmrn�resrr?)rDrmr@�readline�s 
	

zIOBase.readlinecCs|j�|S)N)rZ)rDr?r?r@�__iter__szIOBase.__iter__cCs|j�}|st�|S)N)rt�
StopIteration)rD�liner?r?r@�__next__szIOBase.__next__cCsR|dks|dkrt|�Sd}g}x,|D]$}|j|�|t|�7}||kr&Pq&W|S)Nr)�list�appendr!)rDZhintrl�linesrwr?r?r@�	readliness

zIOBase.readlinescCs$|j�x|D]}|j|�qWdS)N)rZ�write)rDr{rwr?r?r@�
writelines#s
zIOBase.writelines)r)N)N)N)N)Nr)r)N)rHrIrJrTrUrXrYr[r\r3r]r^r`rarbrcrd�propertyrerZrfrgr*r'rtrurxr|r~r?r?r?r@rQs2$






	

%
rQ)�	metaclassc@s.eZdZddd�Zdd�Zdd�Zdd	�Zd
S)
�	RawIOBaser
cCsP|dkrd}|dkr|j�St|j��}|j|�}|dkr>dS||d�=t|�S)Nr
rr)�readallrp�	__index__�readintor)rDrmrrlr?r?r@rq9s

zRawIOBase.readcCs8t�}x|jt�}|sP||7}qW|r0t|�S|SdS)N)rprqr(r)rDrs�datar?r?r@r�Js
zRawIOBase.readallcCs|jd�dS)Nr�)rT)rDrr?r?r@r�XszRawIOBase.readintocCs|jd�dS)Nr})rT)rDrr?r?r@r}`szRawIOBase.writeNr)r)rHrIrJrqr�r�r}r?r?r?r@r�+s
r�)r&c@sHeZdZddd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�BufferedIOBaseNcCs|jd�dS)Nrq)rT)rDrmr?r?r@rq~szBufferedIOBase.readcCs|jd�dS)N�read1)rT)rDrmr?r?r@r��szBufferedIOBase.read1cCs|j|dd�S)NF)r�)�	_readinto)rDrr?r?r@r��szBufferedIOBase.readintocCs|j|dd�S)NT)r�)r�)rDrr?r?r@�	readinto1�s	zBufferedIOBase.readinto1cCsVt|t�st|�}|jd�}|r0|jt|��}n|jt|��}t|�}||d|�<|S)N�B)r�
memoryview�castr�r!rq)rDrr�r�rlr?r?r@r��s

zBufferedIOBase._readintocCs|jd�dS)Nr})rT)rDrr?r?r@r}�s	zBufferedIOBase.writecCs|jd�dS)N�detach)rT)rDr?r?r@r��szBufferedIOBase.detach)N)N)
rHrIrJrqr�r�r�r�r}r�r?r?r?r@r�ms

r�c@s�eZdZdd�Zd#dd�Zdd�Zd$d	d
�Zdd�Zd
d�Zdd�Z	dd�Z
edd��Zedd��Z
edd��Zedd��Zdd�Zdd�Zdd �Zd!d"�ZdS)%�_BufferedIOMixincCs
||_dS)N)�_raw)rDr;r?r?r@�__init__�sz_BufferedIOMixin.__init__rcCs"|jj||�}|dkrtd��|S)Nrz#seek() returned an invalid position)r;rUr,)rDrVrWZnew_positionr?r?r@rU�sz_BufferedIOMixin.seekcCs|jj�}|dkrtd��|S)Nrz#tell() returned an invalid position)r;rXr,)rDrVr?r?r@rX�s
z_BufferedIOMixin.tellNcCs$|j�|dkr|j�}|jj|�S)N)r[rXr;rY)rDrVr?r?r@rY�sz_BufferedIOMixin.truncatecCs|jrtd��|jj�dS)Nzflush of closed file)rer"r;r[)rDr?r?r@r[�sz_BufferedIOMixin.flushc
Cs0|jdk	r,|jr,z|j�Wd|jj�XdS)N)r;rer[r3)rDr?r?r@r3sz_BufferedIOMixin.closecCs*|jdkrtd��|j�|j}d|_|S)Nzraw stream already detached)r;r"r[r�)rDr;r?r?r@r�s
z_BufferedIOMixin.detachcCs
|jj�S)N)r;r^)rDr?r?r@r^sz_BufferedIOMixin.seekablecCs|jS)N)r�)rDr?r?r@r;sz_BufferedIOMixin.rawcCs|jjS)N)r;re)rDr?r?r@resz_BufferedIOMixin.closedcCs|jjS)N)r;rS)rDr?r?r@rS!sz_BufferedIOMixin.namecCs|jjS)N)r;r2)rDr?r?r@r2%sz_BufferedIOMixin.modecCstdj|jj���dS)Nz can not serialize a '{0}' object)r�formatrRrH)rDr?r?r@�__getstate__)sz_BufferedIOMixin.__getstate__cCsJ|jj}|jj}y
|j}Wntk
r6dj||�SXdj|||�SdS)Nz<{}.{}>z<{}.{} name={!r}>)rRrIrJrS�	Exceptionr�)rD�modnameZclsnamerSr?r?r@�__repr__-s
z_BufferedIOMixin.__repr__cCs
|jj�S)N)r;r*)rDr?r?r@r*9sz_BufferedIOMixin.filenocCs
|jj�S)N)r;r')rDr?r?r@r'<sz_BufferedIOMixin.isatty)r)N)rHrIrJr�rUrXrYr[r3r�r^rr;rerSr2r�r�r*r'r?r?r?r@r��s 	


r�cs�eZdZddd�Zdd�Zdd�Zdd	�Z�fd
d�Zd dd
�Zdd�Z	dd�Z
d!dd�Zdd�Zd"dd�Z
dd�Zdd�Zdd�Z�ZS)#�BytesIONcCs&t�}|dk	r||7}||_d|_dS)Nr)rp�_buffer�_pos)rDZ
initial_bytes�bufr?r?r@r�Ds
zBytesIO.__init__cCs|jrtd��|jj�S)Nz__getstate__ on closed file)rer"�__dict__�copy)rDr?r?r@r�KszBytesIO.__getstate__cCs|jrtd��t|j�S)Nzgetvalue on closed file)rer"rr�)rDr?r?r@�getvaluePszBytesIO.getvaluecCs|jrtd��t|j�S)Nzgetbuffer on closed file)rer"r�r�)rDr?r?r@�	getbufferWszBytesIO.getbuffercs|jj�t�j�dS)N)r��clear�superr3)rD)rRr?r@r3^s
z
BytesIO.closecCst|jrtd��|dkrd}|dkr,t|j�}t|j�|jkr@dStt|j�|j|�}|j|j|�}||_t|�S)Nzread from closed filer
r�r)rer"r!r�r�rkr)rDrmZnewposrr?r?r@rqbs
zBytesIO.readcCs
|j|�S)N)rq)rDrmr?r?r@r�psz
BytesIO.read1cCs�|jrtd��t|t�r td��t|��}|j}WdQRX|dkrFdS|j}|t|j	�krzd|t|j	�}|j	|7_	||j	|||�<|j|7_|S)Nzwrite to closed filez can't write str to binary streamr�)
rer"rrrr��nbytesr�r!r�)rDrZviewrlrVZpaddingr?r?r@r}us

z
BytesIO.writercCs�|jrtd��y
|jWn,tk
rD}ztd�|�WYdd}~XnX|dkrl|dkrdtd|f��||_nD|dkr�td|j|�|_n(|dkr�tdt|j�|�|_ntd��|jS)Nzseek on closed filezan integer is requiredrznegative seek position %rr
rzunsupported whence value)	rer"r�r-rr��maxr!r�)rDrVrW�errr?r?r@rU�s 
zBytesIO.seekcCs|jrtd��|jS)Nztell on closed file)rer"r�)rDr?r?r@rX�szBytesIO.tellcCs||jrtd��|dkr|j}nNy
|jWn,tk
rT}ztd�|�WYdd}~XnX|dkrltd|f��|j|d�=|S)Nztruncate on closed filezan integer is requiredrznegative truncate position %r)rer"r�r�r-rr�)rDrVr�r?r?r@rY�s
zBytesIO.truncatecCs|jrtd��dS)NzI/O operation on closed file.T)rer")rDr?r?r@ra�szBytesIO.readablecCs|jrtd��dS)NzI/O operation on closed file.T)rer")rDr?r?r@rc�szBytesIO.writablecCs|jrtd��dS)NzI/O operation on closed file.T)rer")rDr?r?r@r^�szBytesIO.seekable)N)N)r)N)rHrIrJr�r�r�r�r3rqr�r}rUrXrYrarcr^�
__classcell__r?r?)rRr@r�@s



r�c@sreZdZefdd�Zdd�Zdd�Zddd	�Zdd
d�Zdd
d�Z	ddd�Z
dd�Zdd�Zdd�Z
ddd�ZdS)r0cCsF|j�std��tj||�|dkr,td��||_|j�t�|_dS)Nz "raw" argument must be readable.rzinvalid buffer size)	rar,r�r�r"�buffer_size�_reset_read_buf�Lock�
_read_lock)rDr;r�r?r?r@r��szBufferedReader.__init__cCs
|jj�S)N)r;ra)rDr?r?r@ra�szBufferedReader.readablecCsd|_d|_dS)Nr�r)�	_read_buf�	_read_pos)rDr?r?r@r��szBufferedReader._reset_read_bufNc	Cs4|dk	r|dkrtd��|j�|j|�SQRXdS)Nr
zinvalid number of bytes to readr)r"r��_read_unlocked)rDrmr?r?r@rq�szBufferedReader.readcCs�d}d}|j}|j}|dks$|dkr�|j�t|jd�rj|jj�}|dkrZ||d�pXdS||d�|S||d�g}d}x2|jj�}||kr�|}P|t|�7}|j|�q~Wdj	|�p�|St|�|}	||	kr�|j|7_||||�S||d�g}t
|j|�}
xB|	|k�rL|jj|
�}||k�r2|}P|	t|�7}	|j|��qWt||	�}dj	|�}||d�|_d|_|�r�|d|�S|S)Nr�r
r�r)r�Nr)
r�r�r�ror;r�rqr!rz�joinr�r�rk)rDrlZ
nodata_valZempty_valuesr�rV�chunkZchunksZcurrent_size�availZwanted�outr?r?r@r��sN




zBufferedReader._read_unlockedrc	Cs|j�|j|�SQRXdS)N)r��_peek_unlocked)rDrmr?r?r@rhszBufferedReader.peekcCsrt||j�}t|j�|j}||ks,|dkrb|j|}|jj|�}|rb|j|jd�||_d|_|j|jd�S)Nr)rkr�r!r�r�r;rq)rDrlZwantZhaveZto_readZcurrentr?r?r@r�)s
zBufferedReader._peek_unlockedcCsT|dkrtd��|dkrdS|j�(|jd�|jt|t|j�|j��SQRXdS)Nrz(number of bytes to read must be positiver�r
)r"r�r�r�rkr!r�r�)rDrmr?r?r@r�4s
zBufferedReader.read1cCst|t�st|�}|jdkr dS|jd�}d}|j��x�|t|�k�rtt|j�|jt|��}|r�|j|j|j|�||||�<|j|7_||7}|t|�kr�Pt|�||j	kr�|j
j||d��}|s�P||7}n|o�|s�|jd�s�P|r8|r8Pq8WWdQRX|S)Nrr�r
)
rr�r�r�r�r!rkr�r�r�r;r�r�)rDr�r��writtenr�rlr?r?r@r�Fs4


"

zBufferedReader._readintocCstj|�t|j�|jS)N)r�rXr!r�r�)rDr?r?r@rXtszBufferedReader.tellcCsX|tkrtd��|j�8|dkr4|t|j�|j8}tj|||�}|j�|SQRXdS)Nzinvalid whence valuer
)	�valid_seek_flagsr"r�r!r�r�r�rUr�)rDrVrWr?r?r@rUwszBufferedReader.seek)N)N)r)r)r)rHrIrJr(r�rar�rqr�rhr�r�r�rXrUr?r?r?r@r0�s


4


.r0c@sTeZdZefdd�Zdd�Zdd�Zddd	�Zd
d�Zdd
�Z	dd�Z
ddd�ZdS)r/cCsF|j�std��tj||�|dkr,td��||_t�|_t�|_	dS)Nz "raw" argument must be writable.rzinvalid buffer size)
rcr,r�r�r"r�rp�
_write_bufr��_write_lock)rDr;r�r?r?r@r��szBufferedWriter.__init__cCs
|jj�S)N)r;rc)rDr?r?r@rc�szBufferedWriter.writablecCs�|jrtd��t|t�r td��|j��t|j�|jkr@|j	�t|j�}|jj
|�t|j�|}t|j�|jkr�y|j	�Wnltk
r�}zPt|j�|jkr�t|j�|j}||8}|jd|j�|_t|j|j
|��WYdd}~XnX|SQRXdS)Nzwrite to closed filez can't write str to binary stream)rer"rrrr�r!r�r��_flush_unlocked�extend�BlockingIOError�errno�strerror)rDrZbeforer��eZoverager?r?r@r}�s(

"zBufferedWriter.writeNc	Cs8|j�(|j�|dkr"|jj�}|jj|�SQRXdS)N)r�r�r;rXrY)rDrVr?r?r@rY�s

zBufferedWriter.truncatec	Cs|j�|j�WdQRXdS)N)r�r�)rDr?r?r@r[�szBufferedWriter.flushcCs�|jrtd��xz|jr�y|jj|j�}Wntk
rDtd��YnX|dkr\ttjdd��|t	|j�ksr|dkrzt
d��|jd|�=qWdS)Nzflush of closed filezHself.raw should implement RawIOBase: it should not raise BlockingIOErrorz)write could not complete without blockingrz*write() returned incorrect number of bytes)rer"r�r;r}r��RuntimeErrorr�ZEAGAINr!r,)rDrlr?r?r@r��szBufferedWriter._flush_unlockedcCstj|�t|j�S)N)r�rXr!r�)rDr?r?r@rX�szBufferedWriter.tellrcCs8|tkrtd��|j�|j�tj|||�SQRXdS)Nzinvalid whence value)r�r"r�r�r�rU)rDrVrWr?r?r@rU�s
zBufferedWriter.seek)N)r)rHrIrJr(r�rcr}rYr[r�rXrUr?r?r?r@r/�s	
r/c@s�eZdZefdd�Zddd�Zdd�Zdd	�Zddd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zedd��ZdS)�BufferedRWPaircCs<|j�std��|j�s td��t||�|_t||�|_dS)Nz#"reader" argument must be readable.z#"writer" argument must be writable.)rar,rcr0�readerr/�writer)rDr�r�r�r?r?r@r��szBufferedRWPair.__init__NcCs|dkrd}|jj|�S)Nr
r)r�rq)rDrmr?r?r@rq�szBufferedRWPair.readcCs|jj|�S)N)r�r�)rDrr?r?r@r��szBufferedRWPair.readintocCs|jj|�S)N)r�r})rDrr?r?r@r}szBufferedRWPair.writercCs|jj|�S)N)r�rh)rDrmr?r?r@rhszBufferedRWPair.peekcCs|jj|�S)N)r�r�)rDrmr?r?r@r�szBufferedRWPair.read1cCs|jj|�S)N)r�r�)rDrr?r?r@r�
szBufferedRWPair.readinto1cCs
|jj�S)N)r�ra)rDr?r?r@ra
szBufferedRWPair.readablecCs
|jj�S)N)r�rc)rDr?r?r@rcszBufferedRWPair.writablecCs
|jj�S)N)r�r[)rDr?r?r@r[szBufferedRWPair.flushc
Cs z|jj�Wd|jj�XdS)N)r�r3r�)rDr?r?r@r3szBufferedRWPair.closecCs|jj�p|jj�S)N)r�r'r�)rDr?r?r@r'szBufferedRWPair.isattycCs|jjS)N)r�re)rDr?r?r@reszBufferedRWPair.closed)N)r)rHrIrJr(r�rqr�r}rhr�r�rarcr[r3r'rrer?r?r?r@r��s

r�c@sheZdZefdd�Zddd�Zdd�Zdd	d
�Zddd�Zd
d�Z	ddd�Z
dd�Zdd�Zdd�Z
dS)r.cCs(|j�tj|||�tj|||�dS)N)r`r0r�r/)rDr;r�r?r?r@r�-szBufferedRandom.__init__rcCs�|tkrtd��|j�|jrJ|j� |jj|jt|j�d�WdQRX|jj||�}|j�|j	�WdQRX|dkr�t
d��|S)Nzinvalid whence valuer
rz seek() returned invalid position)r�r"r[r�r�r;rUr�r!r�r,)rDrVrWr?r?r@rU2s$zBufferedRandom.seekcCs|jrtj|�Stj|�SdS)N)r�r/rXr0)rDr?r?r@rXCs
zBufferedRandom.tellNcCs|dkr|j�}tj||�S)N)rXr/rY)rDrVr?r?r@rYIszBufferedRandom.truncatecCs |dkrd}|j�tj||�S)Nr
r)r[r0rq)rDrmr?r?r@rqOszBufferedRandom.readcCs|j�tj||�S)N)r[r0r�)rDrr?r?r@r�UszBufferedRandom.readintocCs|j�tj||�S)N)r[r0rh)rDrmr?r?r@rhYszBufferedRandom.peekcCs|j�tj||�S)N)r[r0r�)rDrmr?r?r@r�]szBufferedRandom.read1cCs|j�tj||�S)N)r[r0r�)rDrr?r?r@r�aszBufferedRandom.readinto1cCsF|jr:|j�(|jj|jt|j�d�|j�WdQRXtj||�S)Nr
)	r�r�r;rUr�r!r�r/r})rDrr?r?r@r}es
zBufferedRandom.write)r)N)N)r)rHrIrJr(r�rUrXrYrqr�rhr�r�r}r?r?r?r@r.$s	



r.cs�eZdZd0ZdZdZdZdZdZdZ	d1dd�Z
dd	�Zd
d�Zdd
�Z
dd�Zd2dd�Zd3dd�Zdd�Zdd�Zdd�Zefdd�Zdd�Zd4dd�Z�fd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zed,d-��Zed.d/��Z �Z!S)5r&r
FNTrc
Cs
|jdkr*z|jrtj|j�Wdd|_Xt|t�r<td��t|t�r\|}|dkr`td��nd}t|t	�sxtd|f��t
|�t
d�ks�td|f��tdd�|D��dks�|jd	�dkr�td
��d|kr�d|_
d|_tjtjB}nVd
|k�r�d|_d}n@d|k�rd|_tjtjB}n"d|k�r:d|_d|_tjtjB}d	|k�rPd|_d|_|j�rl|j�rl|tjO}n|j�r�|tjO}n
|tjO}|ttdd�O}ttdd��p�ttdd�}||O}d}�y|dk�r<|�s�td��|dk�r�tj||d�}n0|||�}t|t��std��|dk�r&td��|}|�s<tj|d�||_tj|�}	y(tj|	j��rrt t!j"tj#t!j"�|��Wnt$k
�r�YnXt|	dd�|_%|j%dk�r�t&|_%t'�r�t'|tj(�||_)|j�r�tj*|dt+�Wn"|dk	�r�tj|��YnX||_dS)Nrr
z$integer argument expected, got floatznegative file descriptorzinvalid mode: %szxrwab+css|]}|dkVqdS)ZrwaxNr?)�.0�cr?r?r@�	<genexpr>�sz"FileIO.__init__.<locals>.<genexpr>rzKMust have exactly one of create/read/write/append mode and at most one plusrTrrr�O_BINARYZO_NOINHERIT�	O_CLOEXECz'Cannot use closefd=False with file namei�zexpected integer from openerzNegative file descriptorFr+rr),�_fd�_closefdrr3r�floatrrr"rr �sum�count�_created�	_writable�O_EXCL�O_CREAT�	_readable�O_TRUNC�
_appending�O_APPEND�O_RDWR�O_RDONLY�O_WRONLY�getattrrAr,�set_inheritabler)�stat�S_ISDIR�st_mode�IsADirectoryErrorr�ZEISDIRr�r-�_blksizer(�_setmoder�rS�lseekr	)
rDr4r2r9r�fd�flagsZnoinherit_flagZowned_fdZfdfstatr?r?r@r�ws�




$











zFileIO.__init__cCsD|jdkr@|jr@|jr@ddl}|jd|ftd|d�|j�dS)Nrzunclosed file %rr)�
stacklevel�source)r�r�rer#r$�ResourceWarningr3)rDr#r?r?r@r]�s

zFileIO.__del__cCstd|jj��dS)Nzcannot serialize '%s' object)rrRrH)rDr?r?r@r��szFileIO.__getstate__c
Csld|jj|jjf}|jr"d|Sy
|j}Wn&tk
rRd||j|j|jfSXd|||j|jfSdS)Nz%s.%sz
<%s [closed]>z<%s fd=%d mode=%r closefd=%r>z<%s name=%r mode=%r closefd=%r>)	rRrIrJrerSr-r�r2r�)rD�
class_namerSr?r?r@r��s
zFileIO.__repr__cCs|jstd��dS)NzFile not open for reading)r�rP)rDr?r?r@rbszFileIO._checkReadablecCs|jstd��dS)NzFile not open for writing)r�rP)rDr_r?r?r@rdszFileIO._checkWritablecCsP|j�|j�|dks |dkr(|j�Sytj|j|�Stk
rJdSXdS)Nr)rZrbr�rrqr�r�)rDrmr?r?r@rqszFileIO.readcCs�|j�|j�t}y6tj|jdt�}tj|j�j}||krH||d}Wnt	k
r^YnXt
�}xnt|�|kr�t|�}|t|t�7}|t|�}ytj
|j|�}Wntk
r�|r�PdSX|s�P||7}qhWt|�S)Nrr
)rZrbr(rr�r�rr)�st_sizer,rpr!r�rqr�r)rD�bufsizerV�endr<rlr�r?r?r@r�s4zFileIO.readallcCs4t|�jd�}|jt|��}t|�}||d|�<|S)Nr�)r�r�rqr!)rDr�mr�rlr?r?r@r�?s
zFileIO.readintocCs8|j�|j�ytj|j|�Stk
r2dSXdS)N)rZrdrr}r�r�)rDrr?r?r@r}GszFileIO.writecCs*t|t�rtd��|j�tj|j||�S)Nzan integer is required)rr�rrZrr�r�)rDrVrWr?r?r@rUUs
zFileIO.seekcCs|j�tj|jdt�S)Nr)rZrr�r�r)rDr?r?r@rXeszFileIO.tellcCs2|j�|j�|dkr |j�}tj|j|�|S)N)rZrdrXr�	ftruncater�)rDrmr?r?r@rYlszFileIO.truncatec
s.|js*z|jrtj|j�Wdt�j�XdS)N)rer�rr3r�r�)rD)rRr?r@r3ys
zFileIO.closecCsF|j�|jdkr@y|j�Wntk
r8d|_YnXd|_|jS)NFT)rZ�	_seekablerXr,)rDr?r?r@r^�s
zFileIO.seekablecCs|j�|jS)N)rZr�)rDr?r?r@ra�szFileIO.readablecCs|j�|jS)N)rZr�)rDr?r?r@rc�szFileIO.writablecCs|j�|jS)N)rZr�)rDr?r?r@r*�sz
FileIO.filenocCs|j�tj|j�S)N)rZrr'r�)rDr?r?r@r'�sz
FileIO.isattycCs|jS)N)r�)rDr?r?r@r9�szFileIO.closefdcCsJ|jr|jrdSdSn0|jr,|jr&dSdSn|jrB|jr<dSdSndSdS)Nzxb+Zxbzab+Zabzrb+�rb�wb)r�r�r�r�)rDr?r?r@r2�szFileIO.moder)rTN)N)N)N)"rHrIrJr�r�r�r�r�r�r�r�r]r�r�rbrdrqr�r�r}rrUrXrYr3r^rarcr*r'rr9r2r�r?r?)rRr@r&ns8
u

#


r&c@s\eZdZddd�Zdd�Zddd�Zd	d
�Zdd�Zed
d��Z	edd��Z
edd��ZdS)�
TextIOBaser
cCs|jd�dS)Nrq)rT)rDrmr?r?r@rq�szTextIOBase.readcCs|jd�dS)Nr})rT)rD�sr?r?r@r}�szTextIOBase.writeNcCs|jd�dS)NrY)rT)rDrVr?r?r@rY�szTextIOBase.truncatecCs|jd�dS)Nrt)rT)rDr?r?r@rt�szTextIOBase.readlinecCs|jd�dS)Nr�)rT)rDr?r?r@r��szTextIOBase.detachcCsdS)Nr?)rDr?r?r@r6�szTextIOBase.encodingcCsdS)Nr?)rDr?r?r@�newlines�szTextIOBase.newlinescCsdS)Nr?)rDr?r?r@r7�szTextIOBase.errorsr)r)N)rHrIrJrqr}rYrtr�rr6r�r7r?r?r?r@r��s	


	
r�c@sPeZdZddd�Zddd�Zdd�Zd	d
�Zdd�Zd
ZdZ	dZ
edd��ZdS)�IncrementalNewlineDecoder�strictcCs,tjj||d�||_||_d|_d|_dS)N)r7rF)�codecs�IncrementalDecoderr��	translate�decoder�seennl�	pendingcr)rDr�r�r7r?r?r@r�s
z"IncrementalNewlineDecoder.__init__FcCs�|jdkr|}n|jj||d�}|jr<|s.|r<d|}d|_|jd�r^|r^|dd�}d|_|jd�}|jd�|}|jd�|}|j|o�|j|o�|jB|o�|jBO_|j	r�|r�|j
dd�}|r�|j
dd�}|S)	N)�final�
Fr
Tz
�
r)r��decoder�rrr�r��_LF�_CR�_CRLFr��replace)rD�inputr��outputZcrlfZcrZlfr?r?r@r�s(

"z IncrementalNewlineDecoder.decodecCs@|jdkrd}d}n|jj�\}}|dK}|jr8|dO}||fS)Nr�rr
)r��getstater�)rDr��flagr?r?r@r2s
z"IncrementalNewlineDecoder.getstatecCs8|\}}t|d@�|_|jdk	r4|jj||d?f�dS)Nr
)�boolr�r��setstate)rD�stater�rr?r?r@r=s
z"IncrementalNewlineDecoder.setstatecCs$d|_d|_|jdk	r |jj�dS)NrF)r�r�r��reset)rDr?r?r@rCs
zIncrementalNewlineDecoder.resetr
r�c
Cs
d|jS)	Nr�r��
�r�r��r�r�r�r�r�r�r)Nr�r�r	rr
rr)r�)rDr?r?r@r�Msz"IncrementalNewlineDecoder.newlinesN)r�)F)
rHrIrJr�r�rrrr�r�r�rr�r?r?r?r@r�s

r�c@s:eZdZdZdEdd�Zdd�Zedd	��Zed
d��Zedd
��Z	edd��Z
dd�Zdd�Zdd�Z
dd�Zdd�Zedd��Zedd��Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�ZdFd*d+�Zd,d-�Zd.d/�ZdGd1d2�Zd3d4�Zd5d6�ZdHd7d8�Zd9d:�ZdId;d<�Z dJd=d>�Z!d?d@�Z"dKdAdB�Z#edCdD��Z$dS)Lr1iNFc
Cs�|dk	r&t|t�r&tdt|�f��|dkr<td|f��|dkr�ytj|j��}Wntt	fk
rnYnX|dkr�yddl
}Wntk
r�d}YnX|jd	�}t|t�s�td
|��t
j|�js�d}t||��|dkr�d}nt|t��std
|��||_||_||_||_||_|dk|_||_|dk|_|�pDtj|_d|_d|_d|_d|_d|_|j j!�|_"|_#t$|j d�|_%d|_&|j"�r�|j'��r�|j j(�}	|	dk�r�y|j)�j*d�Wntk
�r�YnXdS)Nzillegal newline type: %rrr�r��
zillegal newline value: %rr�asciiFzinvalid encoding: %rzG%r is not a text encoding; use codecs.open() to handle arbitrary codecsr�zinvalid errors: %rr�g)Nrr�r�r
)+rrr�typer"r�device_encodingr*r-rP�locale�ImportError�getpreferredencodingr��lookup�_is_text_encoding�LookupErrorr��_line_buffering�	_encoding�_errors�_readuniversal�_readtranslate�_readnl�_writetranslate�linesep�_writenl�_encoder�_decoder�_decoded_chars�_decoded_chars_used�	_snapshotr>r^r��_tellingro�
_has_read1�	_b2cratiorcrX�_get_encoderr)
rDr>r6r7r8r=�
write_throughrr_�positionr?r?r@r�ws`






zTextIOWrapper.__init__cCs�dj|jj|jj�}y
|j}Wntk
r2YnX|dj|�7}y
|j}Wntk
r`YnX|dj|�7}|dj|j�S)Nz<{}.{}z name={0!r}z mode={0!r}z encoding={0!r}>)r�rRrIrJrSr�r2r6)rDr<rSr2r?r?r@r��s



zTextIOWrapper.__repr__cCs|jS)N)r)rDr?r?r@r6�szTextIOWrapper.encodingcCs|jS)N)r)rDr?r?r@r7�szTextIOWrapper.errorscCs|jS)N)r)rDr?r?r@r=�szTextIOWrapper.line_bufferingcCs|jS)N)r�)rDr?r?r@r>�szTextIOWrapper.buffercCs|jrtd��|jS)NzI/O operation on closed file.)rer"r�)rDr?r?r@r^�szTextIOWrapper.seekablecCs
|jj�S)N)r>ra)rDr?r?r@ra�szTextIOWrapper.readablecCs
|jj�S)N)r>rc)rDr?r?r@rc�szTextIOWrapper.writablecCs|jj�|j|_dS)N)r>r[r�r%)rDr?r?r@r[�s
zTextIOWrapper.flushc
Cs0|jdk	r,|jr,z|j�Wd|jj�XdS)N)r>rer[r3)rDr?r?r@r3�szTextIOWrapper.closecCs|jjS)N)r>re)rDr?r?r@re�szTextIOWrapper.closedcCs|jjS)N)r>rS)rDr?r?r@rS�szTextIOWrapper.namecCs
|jj�S)N)r>r*)rDr?r?r@r*�szTextIOWrapper.filenocCs
|jj�S)N)r>r')rDr?r?r@r'�szTextIOWrapper.isattycCs�|jrtd��t|t�s(td|jj��t|�}|js<|j	oBd|k}|rf|jrf|j
dkrf|jd|j
�}|jpr|j
�}|j|�}|jj|�|j	r�|s�d|kr�|j�|jd�d|_|jr�|jj�|S)Nzwrite to closed filezcan't write %s to text streamr�r�r)rer"rrrrRrHr!rrrr�r r(�encoder>r}r[�_set_decoded_charsr$r!r)rDr�ZlengthZhaslf�encoderrr?r?r@r}s&



zTextIOWrapper.writecCstj|j�}||j�|_|jS)N)r��getincrementalencoderrrr )rDZmake_encoderr?r?r@r(szTextIOWrapper._get_encodercCs2tj|j�}||j�}|jr(t||j�}||_|S)N)r��getincrementaldecoderrrrr�rr!)rDZmake_decoderr�r?r?r@�_get_decoders
zTextIOWrapper._get_decodercCs||_d|_dS)Nr)r"r#)rD�charsr?r?r@r,)sz TextIOWrapper._set_decoded_charscCsF|j}|dkr|j|d�}n|j|||�}|jt|�7_|S)N)r#r"r!)rDrl�offsetr1r?r?r@�_get_decoded_chars.sz TextIOWrapper._get_decoded_charscCs$|j|krtd��|j|8_dS)Nz"rewind decoded_chars out of bounds)r#�AssertionError)rDrlr?r?r@�_rewind_decoded_chars8s
z#TextIOWrapper._rewind_decoded_charscCs�|jdkrtd��|jr&|jj�\}}|jr<|jj|j�}n|jj|j�}|}|jj	||�}|j
|�|r�t|�t|j�|_
nd|_
|jr�|||f|_|S)Nz
no decoderg)r!r"r%rr&r>r��_CHUNK_SIZErqr�r,r!r"r'r$)rD�
dec_buffer�	dec_flags�input_chunk�eofZ
decoded_charsr?r?r@�_read_chunk>s 

zTextIOWrapper._read_chunkrcCs(||d>B|d>B|d>Bt|�d>BS)N�@���)r)rDr*r8�
bytes_to_feed�need_eof�
chars_to_skipr?r?r@�_pack_cookiehszTextIOWrapper._pack_cookiecCsFt|d�\}}t|d�\}}t|d�\}}t|d�\}}|||||fS)Nr
r<llll)�divmod)rDZbigint�restr*r8r@rArBr?r?r@�_unpack_cookiers
zTextIOWrapper._unpack_cookiecCs>|jstd��|jstd��|j�|jj�}|j}|dksF|jdkrX|j	rTt
d��|S|j\}}|t|�8}|j}|dkr�|j
||�S|j�}�z�t|j|�}d}x�|dk�r$|jd|f�t|j|d|���}	|	|k�r|j�\}
}|
�s|}||	8}P|t|
�8}d}q�||8}|d}q�Wd}|jd|f�||}|}
|dk�rZ|j
||
�Sd}d}d}x�t|t|��D]v}|d7}|t|j|||d���7}|j�\}}|�r�||k�r�||7}||8}|dd}
}}||k�rvP�qvW|t|jddd	��7}d}||k�rtd
��|j
||
|||�S|j|�XdS)Nz!underlying stream is not seekablez(telling position disabled by next() callzpending decoded textrr
r�rT)r�z'can't reconstruct logical file position)r�rPr%r,r[r>rXr!r$r"r4r!r#rCrrr'rr��range)rDr*r�r8Z
next_inputrBZsaved_stateZ
skip_bytesZ	skip_backrlr�d�	start_posZstart_flagsZ	bytes_fedrAZ
chars_decoded�ir7r?r?r@rXysv





zTextIOWrapper.tellcCs$|j�|dkr|j�}|jj|�S)N)r[rXr>rY)rDrVr?r?r@rY�szTextIOWrapper.truncatecCs*|jdkrtd��|j�|j}d|_|S)Nzbuffer is already detached)r>r"r[r�)rDr>r?r?r@r��s
zTextIOWrapper.detachcs��fdd�}�jrtd���js(td��|dkrL|dkr@td��d}�j�}|dkr�|dkrdtd	���j��jjdd�}�jd
�d�_	�j
r��j
j�||�|S|dkr�td|f��|dkr�td|f���j��j|�\}}}}}	�jj|��jd
�d�_	|dk�r(�j
�r(�j
j�n@�j
�s<|�s<|	�rh�j
�pJ�j
��_
�j
jd
|f�|d
f�_	|	�r��jj|�}
�j�j
j|
|��||
f�_	t�j�|	k�r�td��|	�_||�|S)NcsHy�jp�j�}Wntk
r&YnX|dkr<|jd�n|j�dS)Nr)r r(rrr)r*r-)rDr?r@�_reset_encoder�sz*TextIOWrapper.seek.<locals>._reset_encoderztell on closed filez!underlying stream is not seekabler
rz#can't do nonzero cur-relative seeksrz#can't do nonzero end-relative seeksrzunsupported whence (%r)znegative seek position %rr�z#can't restore logical file position)rer"r�rPrXr[r>rUr,r$r!rrFr0rrqr�r!r"r,r#)rDZcookierWrKr*rIr8r@rArBr9r?)rDr@rU�s\





zTextIOWrapper.seekcCs�|j�|dkrd}|jp |j�}y
|jWn,tk
rX}ztd�|�WYdd}~XnX|dkr�|j�|j|jj	�dd�}|j
d�d|_|Sd}|j|�}x6t|�|kr�|r�|j
�}||j|t|��7}q�W|SdS)	Nr
zan integer is requiredrT)r�rFr)rbr!r0r�r-rr3r�r>rqr,r$r!r;)rDrmr�r�r<r:r?r?r@rq5	s(



zTextIOWrapper.readcCs(d|_|j�}|s$d|_|j|_t�|S)NF)r%rtr$r�rv)rDrwr?r?r@rxN	szTextIOWrapper.__next__cCs�|jrtd��|dkrd	}nt|t�s.td��|j�}d}|jsH|j�d}}�xR|jr�|j	d|�}|dkrz|d}Pnt
|�}n�|j�r|j	d|�}|j	d|�}|d
kr�|dkr�t
|�}n
|d}PnL|dkr�|d}Pn8||kr�|d}Pn$||dk�r|d}Pn
|d}Pn&|j	|j�}|dk�r>|t
|j�}P|dk�r\t
|�|k�r\|}Px|j
��rv|j�r^P�q^W|j�r�||j�7}qT|jd�d|_|SqTW|dk�r�||k�r�|}|jt
|�|�|d|�S)
Nzread from closed filer
zsize must be an integerrr�r�rrrrrr)rer"rrrr3r!r0rrjr!rrr;r"r,r$r5)rDrmrw�startrV�endposZnlposZcrposr?r?r@rtW	sp




zTextIOWrapper.readlinecCs|jr|jjSdS)N)r!r�)rDr?r?r@r��	szTextIOWrapper.newlines)NNNFF)N)rrrr)N)r)N)N)%rHrIrJr6r�r�rr6r7r=r>r^rarcr[r3rerSr*r'r}r(r0r,r3r5r;rCrFrXrYr�rUrqrxrtr�r?r?r?r@r1ZsF
E

*
	c

K
	
Xr1csNeZdZd�fdd�	Zdd�Zdd�Zed	d
��Zedd��Zd
d�Z	�Z
S)�StringIOrr�csftt|�jt�dd|d�|dkr(d|_|dk	rbt|t�sNtdjt	|�j
���|j|�|jd�dS)Nzutf-8�
surrogatepass)r6r7r8Fz*initial_value must be str or None, not {0}r)
r�rNr�r�rrrrr�rrHr}rU)rDZ
initial_valuer8)rRr?r@r��	s

zStringIO.__init__cCsL|j�|jp|j�}|j�}|j�z|j|jj�dd�S|j|�XdS)NT)r�)	r[r!r0rrr�r>r�r)rDr�Z	old_stater?r?r@r��	szStringIO.getvaluecCs
tj|�S)N)�objectr�)rDr?r?r@r��	szStringIO.__repr__cCsdS)Nr?)rDr?r?r@r7�	szStringIO.errorscCsdS)Nr?)rDr?r?r@r6�	szStringIO.encodingcCs|jd�dS)Nr�)rT)rDr?r?r@r��	szStringIO.detach)rr�)rHrIrJr�r�r�rr7r6r�r�r?r?)rRr@rN�	s
rN>rri r)rrNNNTN)4r�abcr�r�r��sys�_threadrr�rZ
_dummy_thread�platformZmsvcrtrr��iorrrr	r�ro�addr�	SEEK_DATAr(r�rArBrKrPr-r,r"�ABCMetarQ�registerr��_ior&r�r�r�r0r/r�r.r�r�r�r1rNr?r?r?r@�<module>st



T	
=
giCZIJUAU^