관리-도구
편집 파일: _pyio.cpython-37.opt-2.pyc
B YI~d�e � @ s8 d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ ej dkrTd dl mZ ndZd dl Z d dl mZmZmZmZ d ddhZee d�r�e�e j� e�e j� d ZeZd3d d�ZG dd� d�ZG dd� d�Zy e jZW n( ek �r G dd� dee�ZY nX G dd� dej d�Z!e j!�"e!� G dd� de!�Z#e j#�"e#� d dl$m%Z% e#�"e%� G dd� de!�Z&e j&�"e&� G dd� de&�Z'G dd � 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-e j-�"e-� G d-d.� d.ej.�Z/G d/d0� d0e-�Z0G d1d2� d2e0�Z1dS )4� N)� allocate_lock> �win32�cygwin)�setmode)�__all__�SEEK_SET�SEEK_CUR�SEEK_END� � � SEEK_HOLEi �r���Tc C sz t | t�st�| �} t | tttf�s0td| ��t |t�sFtd| ��t |t�s\td| ��|d k rzt |t�sztd| ��|d k 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��dd l }|�dtd� d} |�rX|�rXt d��| | | | dk�rvt d��| �s�| �s�|�s�|�s�t d��|�r�|d k �r�t d��|�r�|d k �r�t d��|�r�|d k �r�t d��t | | �r�d�p�d| �r�d�p�d |�rd �pd |�rd �pd | �r,d�p.d ||d�}|}�yd}|dk�sd|dk �rl|�� �rld}d}|dk �r�t}yt�|�� �j}W n ttfk �r� Y nX |dk�r�|}|dk �r�t d��|dk�r�|�r�|S t d ��| �r�t||�}n<| �s |�s |�rt||�}n| �r(t||�}nt d!| ��|}|�rB|S t|||||�}|}||_|S |�� � Y nX d S )"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 '+'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� )�openerFr zinvalid 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)�filer1 � buffering�encoding�errors�newline�closefdr ZmodesZcreatingZreadingZwritingZ appendingZupdating�textZbinaryr"