MINI MINI MANI MO
3
  \!X                @   s^  d dl Z d dlZd dlZd dlZd dlZd dlZyd dlmZ W n  e	k
r`   d dl
mZ Y nX ejd4krzd dlm
Z ndZd dlZd dlmZmZmZmZ d ddhZee d	reje j eje j d5ZeZd7ddZG dd dZG dd dZy
ejZW n( ek
r*   G dd de e!ZY nX G dd dej"dZ#ej#j$e# G dd de#Z%ej%j$e% d dl&m'Z' e%j$e' G dd de#Z(ej(j$e( G dd de(Z)G d d! d!e(Z*G d"d# d#e)Z+G d$d% d%e)Z,G d&d' d'e(Z-G d(d) d)e,e+Z.G d*d+ d+e%Z'G d,d- d-e#Z/ej/j$e/ G d.d/ d/ej0Z1G d0d1 d1e/Z2G d2d3 d3e2Z3dS )8    N)
allocate_lockwin32cygwin)setmode)__all__SEEK_SETSEEK_CURSEEK_END      	SEEK_HOLE   i   rTc             C   s~  t | tstj| } t | tttfs0td|  t |tsFtd| t |ts\td| |d k	r|t |t r|td| |d k	rt |t rtd| t|}|td st|t|krt	d| d|k}	d|k}
d	|k}d
|k}d|k}
d|k}d
|k}d|krH|	s&|s&|s&|
r.t	ddd l
}|jdtd d}
|r\|r\t	d|	|
 | | dkrzt	d|	p|
p|p|st	d|r|d k	rt	d|r|d k	rt	d|r|d k	rt	dt
| |	rdpd|
r dpd |rd	pd |r d
p"d |
r0dp2d ||d}|}yd}|dksh|dk rp|j rpd!}d}|dk rt}ytj|j j}W n ttfk
r   Y nX |dkr|}|dk rt	d|dkr|r|S t	d|
rt||}n<|	s|s|rt||}n|
r,t||}nt	d | |}|rF|S t|||||}|}||_|S    |j   Y nX d S )"Nzinvalid file: %rzinvalid mode: %rzinvalid buffering: %rzinvalid encoding: %rzinvalid errors: %rzaxrwb+tUxr   wa+tbUz4mode U cannot be combined with 'x', 'w', 'a', or '+'r   z'U' mode is deprecatedr   Tz'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)
isinstanceintosfspathstrbytes	TypeErrorsetlen
ValueErrorwarningswarnDeprecationWarningFileIOisattyDEFAULT_BUFFER_SIZEfstatfileno
st_blksizeOSErrorAttributeErrorBufferedRandomBufferedWriterBufferedReader
TextIOWrappermodeclose)filer2   	bufferingencodingerrorsnewlineclosefdr   ZmodesZcreatingZreadingZwritingZ	appendingZupdatingtextZbinaryr#   rawresultline_bufferingZbsbuffer r?   /usr/lib64/python3.6/_pyio.pyopen(   s    {
>
rA   c               @   s   e Zd Zdd ZdS )
DocDescriptorc             C   s
   dt j S )Nz\open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
)rA   __doc__)selfobjtypr?   r?   r@   __get__   s    zDocDescriptor.__get__N)__name__
__module____qualname__rG   r?   r?   r?   r@   rB      s   rB   c               @   s   e Zd Ze Zdd ZdS )OpenWrapperc             O   s
   t ||S )N)rA   )clsargskwargsr?   r?   r@   __new__  s    zOpenWrapper.__new__N)rH   rI   rJ   rB   rC   rO   r?   r?   r?   r@   rK     s   rK   c               @   s   e Zd ZdS )UnsupportedOperationN)rH   rI   rJ   r?   r?   r?   r@   rP     s   rP   c               @   s   e Zd Zdd Zd5ddZdd Zd6d	d
Zdd Zd
Zdd Z	dd Z
dd Zd7ddZdd Z
d8ddZdd Zd9ddZedd Zd:d d!Zd"d# Zd$d% Zd&d' Zd(d) Zd<d+d,Zd-d. Zd/d0 Zd=d1d2Zd3d4 ZdS )>IOBasec             C   s   t d| jj|f d S )Nz%s.%s() not supported)rP   	__class__rH   )rD   namer?   r?   r@   _unsupported@  s    zIOBase._unsupportedr   c             C   s   | j d d S )Nseek)rT   )rD   poswhencer?   r?   r@   rU   G  s    zIOBase.seekc             C   s   | j ddS )Nr   r
   )rU   )rD   r?   r?   r@   tellW  s    zIOBase.tellNc             C   s   | j d d S )Ntruncate)rT   )rD   rV   r?   r?   r@   rY   [  s    zIOBase.truncatec             C   s   | j   d S )N)_checkClosed)rD   r?   r?   r@   flushe  s    zIOBase.flushFc             C   s    | j sz| j  W d d| _ X d S )NT)_IOBase__closedr[   )rD   r?   r?   r@   r3   o  s    zIOBase.closec          	   C   s   y| j   W n   Y nX d S )N)r3   )rD   r?   r?   r@   __del__z  s    zIOBase.__del__c             C   s   dS )NFr?   )rD   r?   r?   r@   seekable  s    zIOBase.seekablec             C   s    | j  st|d krdn|d S )NzFile or stream is not seekable.)r^   rP   )rD   msgr?   r?   r@   _checkSeekable  s    zIOBase._checkSeekablec             C   s   dS )NFr?   )rD   r?   r?   r@   readable  s    zIOBase.readablec             C   s    | j  st|d krdn|d S )NzFile or stream is not readable.)ra   rP   )rD   r_   r?   r?   r@   _checkReadable  s    zIOBase._checkReadablec             C   s   dS )NFr?   )rD   r?   r?   r@   writable  s    zIOBase.writablec             C   s    | j  st|d krdn|d S )NzFile or stream is not writable.)rc   rP   )rD   r_   r?   r?   r@   _checkWritable  s    zIOBase._checkWritablec             C   s   | j S )N)r\   )rD   r?   r?   r@   closed  s    z
IOBase.closedc             C   s   | j rt|d krdn|d S )NzI/O operation on closed file.)re   r"