MINI MINI MANI MO

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

3


 \-@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$/usr/lib64/python3.6/lib2to3/main.py
diff_textss
rcs>eZdZdZdfdd	ZddZfddZd	d
ZZS)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		sR||_||_|r(|jtjr(|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__cOs*|jj|||f|jj|f||dS)N)errorsappendloggererror)rmsgargskwargsrrr
	log_errorAszStdoutRefactoringTool.log_errorc
!s||}|jrH|j|jr6tjj|j|t|jd}ntd||jf|jrX||j7}||krtjj	|}tjj
|r|rtj||jd|||j
s4|d}tjj|rytj|Wn.tk
r}z|jd|WYdd}~XnXytj||Wn2tk
r2}z|jd||WYdd}~XnXtt|j}	|	|||||j
sbtj||||krxtj||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|||}yX|jdk	rp|j&x|D]}t|qJWtjjWdQRXnx|D]}t|qvWWn"tk
rt	d|fdSXdS)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)rrr)	__name__
__module____qualname____doc__rr(r6rD
__classcell__rr)r r
rs
'rcCstd|ftjddS)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|\}}|jr@d4|d5<|js:td6d4|_|jr\|jr\|j	d7|j
rx|jrx|j	d8|jr|jrtd9|jr|jr|j	d:|jrt
d;xtjD]}t
|qW|sd<S|st
d=tjd>t
d?tjd>d@SdA|kr4d4}|jr4t
dBtjd>d@S|jrDd4|dC<|jrRtjntj}tjdD|dEtjdF}ttj}	tfdGdH|jD}
t}|jrd'}x2|jD](}
|
dIkrd4}n|jdJ|
qW|r|	j|n|}n
|	j|}|j|
}t j!j"|}|rD|j#t j$rDt j!j%|rDt j!j&|}|jrh|j't j$}|j(dK|j|t)t*||t*||j|j||j|j
dL}|j+s|r|j,nRy|j||j|j-|j.Wn6tj/k
r|j.dkst0t
dMtjd>dSX|j1t2t3|j+S)NzMain 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).
    z2to3 [options] file|dir ...)Zusagez-dz--doctests_only
store_truezFix up doctests only)actionhelpz-fz--fixr"z1Each FIX specifies a transformation; default: all)rMdefaultrNz-jz--processesZstorerintzRun 2to3 concurrently)rMrOtyperNz-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.)rMrQrOrNz-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.)rJzUse --help to show usage.-zCan't write to stdin.rz%(name)s: %(message)s)formatlevelz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.)4optparseZOptionParserZ
add_option
parse_argsrSr:r@rrr$Z
add_suffixZno_diffsZ
list_fixesr;rZget_all_fix_namesr<rKrverboseloggingDEBUGINFOZbasicConfigZ	getLoggersetZget_fixers_from_packageZnofixrYaddunion
differencerr*commonprefixrrr/r.rstripinforsortedr!refactor_stdinZ
doctests_onlyZ	processesZMultiprocessingUnsupportedAssertionErrorZ	summarizerPbool)rZr&parserrkflagsrZfixnamerWr#Zavail_fixesZunwanted_fixesrZall_presentrYZ	requestedZfixer_namesrZrtr)rZr
mains




















rp)N)rHZ
__future__rrr<rrr`r7r]rrrZMultiprocessRefactoringToolrr@rprrrr
<module>s	g

OHA YOOOO