$Yf- @ s d d l m Z m Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d d Z Gd d d e j Z d d Z d d d Z d S) )with_statementprint_functionN )refactorc C s: | j } | j } t j | | | | d d d d S)Nz (original)z(refactored)Zlineterm ) splitlinesdifflibZunified_diff)abfilename r )/opt/alt/python35/lib64/python3.5/main.py diff_texts s r c sU e Z d Z d d d f d d Z d d Z f d d Z d d Z S) StdoutRefactoringToolr c ss | | _ | | _ | r8 | j t j r8 | t j 7} | | _ | | _ | | _ t t | j | | | 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 s3 | j j | | | f | j j | | | d S)N)errorsappendloggererror)r msgargskwargsr r r log_errorA s zStdoutRefactoringTool.log_errorc ! s | } | j rh | j | j rO t j j | j | t | j d } n t d | | j f | j r~ | | j 7} | | k r t j j | } t j j | s t j | | j d | | | j s| d } t j j | r<y t j | Wn5 t k r;} z | j d | WYd d } ~ Xn Xy t j | | Wn8 t k r} z | j d | | WYd d } ~ Xn Xt t | j } | | | | | | j st j | | | | k rt j | | 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_fileshutilcopymode) r Znew_textr Zold_textencodingZ orig_filenamer Zbackuperrwrite)r r r r6 E s@ #& z StdoutRefactoringTool.write_filec C s | r | j d | n | j d | | j r t | | | } yj | j d k r | j - x | D] } t | qg Wt j j Wd QRXn x | D] } t | q WWn' t k r t d | f d SYn Xd S)NzNo changes to %sz Refactored %sz+couldn't encode %s's diff for your terminal) r1 r r Zoutput_lockprintsysstdoutflushUnicodeEncodeErrorwarn)r oldnewr ZequalZ diff_linesliner r r print_outputl s" z"StdoutRefactoringTool.print_output)__name__ __module____qualname__r r( r6 rE r r )r r r s 'r c C s t d | f d t j d S)NzWARNING: %sfile)r<