Viewing File: /opt/alt/python35/lib64/python3.5/lib2to3/__pycache__/main.cpython-35.opt-1.pyc



Yf-@sdZddlmZmZddlZddlZddlZddlZddlZddl	Z	ddl
mZddZGdd	d	ej
Zd
dZddd
ZdS)z
Main program for 2to3.
)with_statementprint_functionN)refactorc	Cs:|j}|j}tj||||ddddS)z%Return a unified diff of two strings.z
(original)z(refactored)Zlineterm)
splitlinesdifflibZunified_diff)abfilenamer1/opt/alt/python35/lib64/python3.5/lib2to3/main.py
diff_textss
	rcs[eZdZdZdddfddZddZfddZd	d
ZS)StdoutRefactoringToola2
    A refactoring tool that can avoid overwriting its input files.
    Prints output to stdout.

    Output files can optionally be written to a different directory and or
    have an extra file suffix appended to their name for use in situations
    where you do not want to replace the input files.
    rc		ss||_||_|r8|jtjr8|tj7}||_||_||_tt	|j
|||dS)aF
        Args:
            fixers: A list of fixers to import.
            options: A dict with RefactoringTool configuration.
            explicit: A list of fixers to run even if they are explicit.
            nobackups: If true no backup '.bak' files will be created for those
                files that are being refactored.
            show_diffs: Should diffs of the refactoring be printed to stdout?
            input_base_dir: The base directory for all input files.  This class
                will strip this path prefix off of filenames before substituting
                it with output_dir.  Only meaningful if output_dir is supplied.
                All files processed by refactor() must start with this path.
            output_dir: If supplied, all converted files will be written into
                this directory tree instead of input_base_dir.
            append_suffix: If supplied, all files output by this tool will have
                this appended to their filename.  Useful for changing .py to
                .py3 for example by passing append_suffix='3'.
        N)	nobackups
show_diffsendswithossep_input_base_dir_output_dir_append_suffixsuperr__init__)	selfZfixersoptionsexplicitrrinput_base_dir
output_dir
append_suffix)	__class__rr
r$s		
			zStdoutRefactoringTool.__init__cOs3|jj|||f|jj|||dS)N)errorsappendloggererror)rmsgargskwargsrrr
	log_errorAszStdoutRefactoringTool.log_errorc
!s|}|jrh|j|jrOtjj|j|t|jd}ntd||jf|jr~||j7}||krtjj	|}tjj
|stj||jd|||j
s|d}tjj|r<ytj|Wn5tk
r;}z|jd|WYdd}~XnXytj||Wn8tk
r}z|jd||WYdd}~XnXtt|j}	|	|||||j
stj||||krtj||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
startswithrrpathjoinlen
ValueErrorrdirnameisdirmakedirslog_messagerlexistsremoveOSErrorrenamerr
write_fileshutilZcopymode)
rZnew_textrZold_textencodingZ
orig_filenamerZbackuperrwrite)r rr
r6Es@		

	
#&	z StdoutRefactoringTool.write_filecCs|r|jd|n|jd||jrt|||}yj|jdk	r|j-x|D]}t|qgWtjjWdQRXnx|D]}t|qWWn'tk
rt	d|fdSYnXdS)NzNo changes to %sz
Refactored %sz+couldn't encode %s's diff for your terminal)
r1rrZoutput_lockprintsysstdoutflushUnicodeEncodeErrorwarn)roldnewrZequalZ
diff_lineslinerrr
print_outputls"	



z"StdoutRefactoringTool.print_output)__name__
__module____qualname____doc__rr(r6rDrr)r r
rs
'rcCstd|fdtjdS)NzWARNING: %sfile)r;r<stderr)r%rrr
r@sr@cstjdd}|jdddddd|jd	d
dddgdd
|jdddddddddd|jdddddgdd|jdddddd|jdddddd|jdddddd |jd!dddd"|jd#d$dddd%|jd&d'dddd(dd)|jd*d+dddd,dd-dd.|jd/d0dddd1|jd2dddd,dd-dd3d(}i}|j|\}}|jrd4|d5<|jstd6d4|_|jr|jr|j	d7|j
r>|jr>|j	d8|jr[|jr[td9|jr{|jr{|j	d:|jrt
d;x!tjD]}t
|qW|sd<S|st
d=d>tjt
d?d>tjd@SdA|krd4}|jrt
dBd>tjd@S|jr1d4|dC<|jrCtjntj}gtj_tjdDdEdF|tjdG}ttj}	tfdHdI|jD}
t}|jr(d(}x;|jD]0}
|
dJkrd4}q|jdK|
qW|r|	j |n|}n|	j |}|j!|
}t"j#j$|}|r|j%t"j&rt"j#j'|rt"j#j(|}|jr|j)t"j&}|j*dL|j|t+t,||t,||j|jdM|dN|jdO|j
}|j-s|r&|j.nRy#|j||j|j/|j0Wn,tj1k
rwt
dPd>tjdSYnX|j2t3t4|j-S)QzMain program.

    Args:
        fixer_pkg: the name of a package where the fixers are located.
        args: optional; a list of command line arguments. If omitted,
              sys.argv[1:] is used.

    Returns a suggested exit status (0, 1, 2).
    Zusagez2to3 [options] file|dir ...z-dz--doctests_onlyaction
store_truehelpzFix up doctests onlyz-fz--fixr"defaultz1Each FIX specifies a transformation; default: allz-jz--processesZstorertypeintzRun 2to3 concurrentlyz-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-dirstrrzXPut output files in this directory instead of overwriting the input files.  Requires -n.z-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.Twrite_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.rformatz%(name)s: %(message)slevelzlib2to3.mainc3s|]}d|VqdS)z.fix_Nr).0fix)	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.)5optparseZOptionParserZ
add_option
parse_argsrRr:r@rrr$Z
add_suffixZno_diffsZ
list_fixesr;rZget_all_fix_namesr<rJrverboseloggingDEBUGINFOrootZhandlersZbasicConfigZ	getLoggersetZget_fixers_from_packageZnofixrXaddunion
differencerr*commonprefixrrr/r.rstripinforsortedr!refactor_stdinZ
doctests_onlyZ	processesZMultiprocessingUnsupportedZ	summarizerPbool)rYr&parserrkflagsrZfixnamerVr#Zavail_fixesZunwanted_fixesrZall_presentrXZ	requestedZfixer_namesrZrtr)rYr
mains

	
	
	



	
		
"					
		
	
	
ro)rHZ
__future__rrr<rrr_r7r\rrrZMultiprocessRefactoringToolrr@rorrrr
<module>s	g
Back to Directory File Manager