U if- @ s| d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dlZddl m Z dd ZG dd de jZ d d Zd ddZdS ) )with_statementprint_functionN )refactorc C s( | } | }tj| |||ddddS )Nz (original)z(refactored) )Zlineterm) splitlinesdifflibZunified_diff)abfilename r 1/opt/alt/python38/lib64/python3.8/lib2to3/main.py diff_texts s r c s: e Zd Zd fdd Zdd Z fddZdd Z ZS )StdoutRefactoringToolr c sP || _ || _|r&|tjs&|tj7 }|| _|| _|| _tt | ||| d S N) nobackups show_diffsendswithossep_input_base_dir_output_dir_append_suffixsuperr __init__) selfZfixersoptionsexplicitr r input_base_dir output_dir append_suffix __class__r r r $ s zStdoutRefactoringTool.__init__c O s* | j |||f | jj|f|| d S r )errorsappendloggererror)r msgargskwargsr r r log_errorA s zStdoutRefactoringTool.log_errorc sz |}| j rH|| jr6tj| j |t| jd }ntd|| jf | jrX|| j7 }||krtj |}tj |s|rt| | d|| | j s2|d }tj|rzt| W n. tk r } z| d| W 5 d }~X Y nX zt|| W n2 tk r0 } z| d|| W 5 d }~X Y nX tt| j} | |||| | j s`t|| ||krvt|| 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 pathjoinlen ValueErrorr dirnameisdirmakedirslog_messager lexistsremoveOSErrorrenamer r write_fileshutilZcopymode) r Znew_textr Zold_textencodingZ orig_filenamer Zbackuperrwriter! r r r8 E sJ z StdoutRefactoringTool.write_filec C s |r| d| n| d| | jrt|||}zP| jd k rl| j" |D ]}t| qHtj W 5 Q R X n|D ]}t| qpW n$ tk r t d|f Y d S X d S )NzNo changes to %sz Refactored %sz+couldn't encode %s's diff for your terminal) r3 r r Zoutput_lockprintsysstdoutflushUnicodeEncodeErrorwarn)r oldnewr ZequalZ diff_linesliner r r print_outputl s$ z"StdoutRefactoringTool.print_output)r r r )__name__ __module____qualname__r r* r8 rF __classcell__r r r! r r s 'r c C s t d| f tjd d S )NzWARNING: %sfile)r= r> stderr)r' r r r rB s rB c s t jdd}|jddddd |jdd d g dd |jd dddddd |jddd g dd |jddddd |jddddd |jddddd |jd dd!d |jd"d#dd$d |jd%d&dd'd(d |jd)d*dd+d,d-d. |jd/d0dd1d |jd2dd+d,d3d. d'}i }||\}}|jr@d4|d5<