Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/lib2to3/
Upload File :
Current File : //usr/lib/python2.7/lib2to3/main.pyc


|_c@sdZddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
dZde
jfdYZ
d	Zdd
ZdS(s
Main program for 2to3.
i(twith_statementNi(trefactorc	Cs:|j}|j}tj||||ddddS(s%Return a unified diff of two strings.s
(original)s(refactored)tlinetermt(t
splitlinestdifflibtunified_diff(tatbtfilename((s"/usr/lib/python2.7/lib2to3/main.pyt
diff_textss
	tStdoutRefactoringToolcBs;eZdZddddZdZdZdZRS(s2
    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		Csv||_||_|r;|jtjr;|tj7}n||_||_||_tt	|j
|||dS(sF
        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(t	nobackupst
show_diffstendswithtostsept_input_base_dirt_output_dirt_append_suffixtsuperRt__init__(	tselftfixerstoptionstexplicitRR
tinput_base_dirt
output_dirt
append_suffix((s"/usr/lib/python2.7/lib2to3/main.pyR$s					cOs3|jj|||f|jj|||dS(N(terrorstappendtloggerterror(Rtmsgtargstkwargs((s"/usr/lib/python2.7/lib2to3/main.pyt	log_errorAsc
Cs|}|jre|j|jrItjj|j|t|j}qetd||jfn|jr~||j7}n||krtjj	|}tjj
|stj|n|jd||n|j
sy|d}tjj|r6ytj|Wq6tjk
r2}|jd|q6Xnytj||Wqytjk
ru}|jd||qyXntt|j}	|	|||||j
stj||n||krtj||ndS(Ns5filename %s does not start with the input_base_dir %ssWriting converted %s to %s.s.baksCan't remove backup %ssCan't rename %s to %s(Rt
startswithRRtpathtjointlent
ValueErrorRtdirnametisdirtmakedirstlog_messageRtlexiststremoveR trenameRRt
write_filetshutiltcopymode(
Rtnew_textR	told_texttencodingt
orig_filenameRtbackupterrtwrite((s"/usr/lib/python2.7/lib2to3/main.pyR1Es@		
	
	cCs|r|jd|n|jd||jrt|||}y_|jdk	r|j(x|D]}|GHqgWtjjWdQXnx|D]}|GHqWWqtk
rt	d|fdSXndS(NsNo changes to %ss
Refactored %ss+couldn't encode %s's diff for your terminal(
R-R
R
toutput_locktNonetsyststdouttflushtUnicodeEncodeErrortwarn(RtoldtnewR	tequalt
diff_linestline((s"/usr/lib/python2.7/lib2to3/main.pytprint_outputls"	

	


(t__name__t
__module__t__doc__RR$R1RG(((s"/usr/lib/python2.7/lib2to3/main.pyRs
		'cCstjd|fIJdS(NsWARNING: %s(R=tstderr(R!((s"/usr/lib/python2.7/lib2to3/main.pyRAscstjdd}|jdddddd|jd	d
dddgdd
|jdddddddddd|jdddddgdd|jdddddd|jdddddd|jdddddd |jd!dddd"|jd#d$dddd%|jd&d'dddtdd(|jd)d*dddd+dd,dd-|jd.d/dddd0|jd1dddd+dd,dd2t}i}|j|\}}|jrt|d3<|jstd4nt|_n|j	r'|j
r'|jd5n|jrJ|j
rJ|jd6n|jrj|j
rjtd7n|jr|j
r|jd8n|jrd9GHxtjD]}|GHqW|sd:Sn|stjd;IJtjd<IJd=Sd>|krt}|jrtjd?IJd=Sn|jr0t|d@<n|jrBtjntj}tjdAdBdC|tjdD}ttj}	tfdE|jD}
t}|jrt}x;|jD]0}
|
dFkrt}q|jdG|
qW|r|	j|n|}n|	j|}|j |
}t!j"j#|}|r|j$t!j%rt!j"j&|rt!j"j'|}n|j	r|j(t!j%}|j)dH|j	|nt*t+||t+||j
|j
dI|dJ|j	dK|j}|j,s|r|j-n]y#|j||j|j.|j/Wn7tj0k
rx|j/dksgt1tjdLIJdSX|j2nt3t4|j,S(MsMain 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).
    tusages2to3 [options] file|dir ...s-ds--doctests_onlytactiont
store_truethelpsFix up doctests onlys-fs--fixRtdefaults1Each FIX specifies a transformation; default: alls-js--processeststoreittypetintsRun 2to3 concurrentlys-xs--nofixs'Prevent a transformation from being runs-ls--list-fixessList available transformationss-ps--print-functions0Modify the grammar so that print() is a functions-vs	--verbosesMore verbose loggings
--no-diffss#Don't show diffs of the refactorings-ws--writesWrite back modified filess-ns--nobackupss&Don't write backups for modified filess-os--output-dirtstrRsXPut output files in this directory instead of overwriting the input files.  Requires -n.s-Ws--write-unchanged-filessYAlso write files even if no changes were required (useful with --output-dir); implies -w.s--add-suffixsuAppend this string to all output filenames. Requires -n if non-empty.  ex: --add-suffix='3' will generate .py3 files.twrite_unchanged_filess&--write-unchanged-files/-W implies -w.s%Can't use --output-dir/-o without -n.s"Can't use --add-suffix without -n.s@not writing files and not printing diffs; that's not very usefulsCan't use -n without -ws2Available transformations for the -f/--fix option:is1At least one file or directory argument required.sUse --help to show usage.it-sCan't write to stdin.tprint_functiontformats%(name)s: %(message)stlevelslib2to3.mainc3s|]}d|VqdS(s.fix_N((t.0tfix(t	fixer_pkg(s"/usr/lib/python2.7/lib2to3/main.pys	<genexpr>stalls.fix_s7Output in %r will mirror the input directory %r layout.RRRs+Sorry, -j isn't supported on this platform.(5toptparsetOptionParsert
add_optiontFalset
parse_argsRUtTrueR:RARRR t
add_suffixtno_diffst
list_fixesRtget_all_fix_namesR=RKRWtverbosetloggingtDEBUGtINFOtbasicConfigt	getLoggertsettget_fixers_from_packagetnofixR[taddtuniont
differenceRR&tcommonprefixRRR+R*trstriptinfoRtsortedRtrefactor_stdint
doctests_onlyt	processestMultiprocessingUnsupportedtAssertionErrort	summarizeRStbool(R\R"tparserRxtflagsRtfixnameRYRtavail_fixestunwanted_fixesRtall_presentR[t	requestedtfixer_namesRtrt((R\s"/usr/lib/python2.7/lib2to3/main.pytmains

	
	

		

	
	
							


(RJt
__future__RR=RRRiR2R^RRR
tMultiprocessRefactoringToolRRAR<R(((s"/usr/lib/python2.7/lib2to3/main.pyt<module>s		h