a XC?hN. @ 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/python39/lib64/python3.9/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 s0 | j |||f | jj|g|R i | 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 s|d }tj|rzt| W n ty | d| Y n0 zt|| W n" ty | d|| Y n0 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 Zbackupwriter! r r r8 E sH z StdoutRefactoringTool.write_filec C s |r| d| n| d| | jrt|||}zd| jd ur| j, |D ]}t| qHtj W d q1 st0 Y n|D ]}t| qW n" ty t d|f Y d S 0 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 rE __classcell__r r r! r r s 'r c C s t d| f tjd d S )NzWARNING: %sfile)r<