Your IP : 3.147.27.154
3
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( | j � } |j � }tj| |||dddd�S )Nz
(original)z(refactored)� )Zlineterm)�
splitlines�difflibZunified_diff)�a�b�filename� r �)/opt/alt/python36/lib64/python3.6/main.py�
diff_texts s
r c s: e Zd Zd
� fdd� Zdd� Z� fdd�Zdd � Z� ZS )�StdoutRefactoringToolr c sR || _ || _|r(|jtj� r(|tj7 }|| _|| _|| _tt | �j
|||� 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 j|||f� | jj|f|�|� d S )N)�errors�append�logger�error)r �msg�args�kwargsr r r
� log_errorA s zStdoutRefactoringTool.log_errorc
! s| |}| j rH|j| j�r6tjj| j |t| j�d � �}ntd|| jf ��| jrX|| j7 }||kr�tjj |�}tjj
|� r�|r�tj|� | jd||� | j
�s4|d }tjj|�r�ytj|� W n. tk
r� } z| jd|� W Y d d }~X nX ytj||� W n2 tk
�r2 } z| jd||� W Y d d }~X nX tt| �j} | ||||� | j
�sbtj||� ||k�rxtj||� 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| j d|� n�| j d|� | jr�t|||�}yX| jd k rp| j�& x|D ]}t|� qJW tjj� 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"