관리-도구
편집 파일: main.cpython-37.opt-2.pyc
B f�- � @ s| d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dlZddl m Z dd� ZG dd� de j�Z d d � Zd dd�ZdS )� )�with_statement�print_functionN� )�refactorc C s( | � � } |� � }tj| |||dddd�S )Nz (original)z(refactored)� )Zlineterm)� splitlines�difflibZunified_diff)�a�b�filename� r �1/opt/alt/python37/lib64/python3.7/lib2to3/main.py� diff_texts s r c s: e Zd Zd � fdd� Zdd� Z� fdd�Zdd � Z� ZS )�StdoutRefactoringToolr c sP || _ || _|r&|�tj�s&|tj7 }|| _|| _|| _tt | �� |||� d S )N)� nobackups� show_diffs�endswith�os�sep�_input_base_dir�_output_dir�_append_suffix�superr �__init__) �selfZfixers�options�explicitr r �input_base_dir� output_dir� append_suffix)� __class__r r r $ s zStdoutRefactoringTool.__init__c O s* | j �|||f� | jj|f|�|� d S )N)�errors�append�logger�error)r �msg�args�kwargsr r r � log_errorA s zStdoutRefactoringTool.log_errorc sz |}| j rH|�| j�r6tj�| j |t| j�d � �}ntd|| jf ��| jrX|| j7 }||kr�tj� |�}tj� |�s�|r�t�|� | �d||� | j �s2|d }tj�|�r�yt�|� W n. tk r� } z| �d|� W d d }~X Y nX yt�||� W n2 tk �r0 } z| �d||� W d d }~X Y nX tt| �j} | ||||� | j �s`t�||� ||k�rvt�||� d S )Nz5filename %s does not start with the input_base_dir %szWriting converted %s to %s.z.bakzCan't remove backup %szCan't rename %s to %s)r � startswithr r �path�join�len� ValueErrorr �dirname�isdir�makedirs�log_messager �lexists�remove�OSError�renamer r � write_file�shutilZcopymode) r Znew_textr Zold_text�encodingZ orig_filenamer Zbackup�err�write)r r r r6 E s@ z StdoutRefactoringTool.write_filec C s� |r| � d|� n�| � d|� | jr�t|||�}yX| jd k rp| j�& x|D ]}t|� qJW tj�� W d Q R X nx|D ]}t|� qvW W n" tk r� t d|f � d S X d S )NzNo changes to %sz Refactored %sz+couldn't encode %s's diff for your terminal) r1 r r Zoutput_lock�print�sys�stdout�flush�UnicodeEncodeError�warn)r �old�newr ZequalZ diff_lines�liner r r �print_outputl s"