Your IP : 3.147.126.242


Current Path : /lib64/python3.6/lib2to3/__pycache__/
Upload File :
Current File : //lib64/python3.6/lib2to3/__pycache__/main.cpython-36.opt-2.pyc

3


 \�-�@s|ddlmZmZddlZddlZddlZddlZddlZddlZddl	m
Z
dd�ZGdd�de
j�Z
d	d
�Zd
dd�ZdS)�)�with_statement�print_functionN�)�refactorc	Cs(|j�}|j�}tj||||dddd�S)Nz
(original)z(refactored)�)Zlineterm)�
splitlines�difflibZunified_diff)�a�b�filename�r�$/usr/lib64/python3.6/lib2to3/main.py�
diff_textss
rcs:eZdZd
�fdd�	Zdd�Z�fdd�Zdd	�Z�ZS)�StdoutRefactoringToolrc		sR||_||_|r(|jtj�r(|tj7}||_||_||_tt	|�j
|||�dS)N)�	nobackups�
show_diffs�endswith�os�sep�_input_base_dir�_output_dir�_append_suffix�superr�__init__)	�selfZfixers�options�explicitrr�input_base_dir�
output_dir�
append_suffix)�	__class__rr
r$s
zStdoutRefactoringTool.__init__cOs*|jj|||f�|jj|f|�|�dS)N)�errors�append�logger�error)r�msg�args�kwargsrrr
�	log_errorAszStdoutRefactoringTool.log_errorc
!s||}|jrH|j|j�r6tjj|j|t|j�d��}ntd||jf��|jrX||j7}||kr�tjj	|�}tjj
|�r�|r�tj|�|jd||�|j
�s4|d}tjj|�r�ytj|�Wn.tk
r�}z|jd|�WYdd}~XnXytj||�Wn2tk
�r2}z|jd||�WYdd}~XnXtt|�j}	|	||||�|j
�sbtj||�||k�rxtj||�dS)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�
startswithrr�path�join�len�
ValueErrorr�dirname�isdir�makedirs�log_messager�lexists�remove�OSError�renamerr�
write_file�shutilZcopymode)
rZnew_textrZold_text�encodingZ
orig_filenamerZbackup�err�write)r rr
r6Es@


 
z StdoutRefactoringTool.write_filecCs�|r|jd|�n�|jd|�|jr�t|||�}yX|jdk	rp|j�&x|D]}t|�qJWtjj�WdQRXnx|D]}t|�qvWWn"tk
r�t	d|f�dSXdS)NzNo changes to %sz
Refactored %sz+couldn't encode %s's diff for your terminal)
r1rrZoutput_lock�print�sys�stdout�flush�UnicodeEncodeError�warn)r�old�newrZequalZ
diff_lines�linerrr
�print_outputls"



z"StdoutRefactoringTool.print_output)rrr)�__name__�
__module__�__qualname__rr(r6rD�
__classcell__rr)r r
rs'rcCstd|ftjd�dS)NzWARNING: %s)�file)r;r<�stderr)r%rrr
r@�sr@cstjdd�}|jddddd�|jdd	d
gdd�|jd
dddddd�|jddd
gdd�|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}|j|�\}}|j�r@d4|d5<|j�s:td6�d4|_|j�r\|j�r\|j	d7�|j
�rx|j�rx|j	d8�|j�r�|j�r�td9�|j�r�|j�r�|j	d:�|j�r�t
d;�xtj��D]}t
|��q�W|�s�d<S|�st
d=tjd>�t
d?tjd>�d@SdA|k�r4d4}|j�r4t
dBtjd>�d@S|j�rDd4|dC<|j�rRtjntj}tjdD|dE�tjdF�}ttj���}	t�fdGdH�|jD��}
t�}|j�r�d'}x2|jD](}
|
dIk�r�d4}n|j�dJ|
��q�W|�r�|	j|�n|}n
|	j|�}|j|
�}t j!j"|�}|�rD|j#t j$��rDt j!j%|��rDt j!j&|�}|j�rh|j't j$�}|j(dK|j|�t)t*|�|t*|�|j|j||j|j
dL�}|j+�s�|�r�|j,�nBy|j||j|j-|j.�Wn&tj/k
�r�t
dMtjd>�dSX|j0�t1t2|j+��S)NNz2to3 [options] file|dir ...)Zusagez-dz--doctests_only�
store_truezFix up doctests only)�action�helpz-fz--fixr"z1Each FIX specifies a transformation; default: all)rL�defaultrMz-jz--processesZstorer�intzRun 2to3 concurrently)rLrN�typerMz-xz--nofixz'Prevent a transformation from being runz-lz--list-fixeszList available transformationsz-pz--print-functionz0Modify the grammar so that print() is a functionz-vz	--verbosezMore verbose loggingz
--no-diffsz#Don't show diffs of the refactoringz-wz--writezWrite back modified filesz-nz--nobackupsFz&Don't write backups for modified filesz-oz--output-dir�strrzXPut output files in this directory instead of overwriting the input files.  Requires -n.)rLrPrNrMz-Wz--write-unchanged-fileszYAlso write files even if no changes were required (useful with --output-dir); implies -w.z--add-suffixzuAppend this string to all output filenames. Requires -n if non-empty.  ex: --add-suffix='3' will generate .py3 files.T�write_unchanged_filesz&--write-unchanged-files/-W implies -w.z%Can't use --output-dir/-o without -n.z"Can't use --add-suffix without -n.z@not writing files and not printing diffs; that's not very usefulzCan't use -n without -wz2Available transformations for the -f/--fix option:rz1At least one file or directory argument required.)rIzUse --help to show usage.��-zCan't write to stdin.rz%(name)s: %(message)s)�format�levelzlib2to3.mainc3s|]}�d|VqdS)z.fix_Nr)�.0�fix)�	fixer_pkgrr
�	<genexpr>�szmain.<locals>.<genexpr>�allz.fix_z7Output in %r will mirror the input directory %r layout.)rrrz+Sorry, -j isn't supported on this platform.)3�optparseZOptionParserZ
add_option�
parse_argsrRr:r@rrr$Z
add_suffixZno_diffsZ
list_fixesr;rZget_all_fix_namesr<rJr�verbose�logging�DEBUG�INFOZbasicConfigZ	getLogger�setZget_fixers_from_packageZnofixrX�add�union�
differencerr*�commonprefixrrr/r.�rstrip�infor�sortedr!�refactor_stdinZ
doctests_onlyZ	processesZMultiprocessingUnsupportedZ	summarizerO�bool)rYr&�parserrj�flagsrZfixnamerVr#Zavail_fixesZunwanted_fixesrZall_presentrXZ	requestedZfixer_namesrZrtr)rYr
�main�s�




















rn)N)Z
__future__rrr<rrr_r7r\rrrZMultiprocessRefactoringToolrr@rnrrrr
�<module>s	g