/snap/core22/2411/usr/lib/python3.10/lib2to3/__pycache__
Edit: /snap/core22/2411/usr/lib/python3.10/lib2to3/__pycache__/main.cpython-310.pyc (8702B)
o
bcN. @ s d Z ddlmZmZ ddlZddlZddlZddlZddlZddl Z ddl
mZ dd ZG dd d ej
Zd
d Zddd
ZdS )z
Main program for 2to3.
)with_statementprint_functionN )refactorc C s( | } | }tj| |||ddddS )z%Return a unified diff of two strings.z
(original)z(refactored) )lineterm)
splitlinesdifflibunified_diff)abfilename r #/usr/lib/python3.10/lib2to3/main.py
diff_texts s r c s@ e Zd ZdZ d fdd Zdd Z fddZd d
Z 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.
r c sP || _ || _|r|tjs|tj7 }|| _|| _|| _tt |
||| 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__) selffixersoptionsexplicitr r input_base_dir
output_dir
append_suffix __class__r r r $ s
zStdoutRefactoringTool.__init__c O s0 | j |||f | jj|g|R i | d S N)errorsappendloggererror)r msgargskwargsr r r log_errorA s zStdoutRefactoringTool.log_errorc sV |}| j r$|| jrtj| j |t| jd }n td|| jf | jr,|| j7 }||krJtj |}tj
|sC|rCt| | d|| | j
s|d }tj|rnzt| W n tym | d| Y nw zt|| W n ty | d|| Y nw tt| j}||||| | j
st|| ||krt|| d S 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 new_textr
old_textencoding
orig_filenamer! backupwriter# r r r; E sN
z StdoutRefactoringTool.write_filec C s |r
| d| d S | d| | jrct|||}z8| jd urF| j |D ]}t| q%tj W d n1 s;w Y W d S W d S |D ]}t| qHW d S tyb t d|f Y d S w d S )NzNo changes to %sz
Refactored %sz+couldn't encode %s's diff for your terminal)
r6 r r output_lockprintsysstdoutflushUnicodeEncodeErrorwarn)r oldnewr
equal
diff_linesliner r r print_outputl s,
(
z"StdoutRefactoringTool.print_output)r r r ) __name__
__module____qualname____doc__r r- r; rP
__classcell__r r r# r r s
'r c C s t d| f tjd d S )NzWARNING: %sfile)rE rF stderr)r* r r r rJ s rJ c
s t jdd}|jddddd |jdd d
g dd |jd
dddddd |jddd
g dd |jddddd |jddddd |jddddd |jd d!dd"d |jd#dd$d |jd%d&dd'd |jd(d)dd*d+d |jd,d-dd.d/d0d1 |jd2d3dd4d |jd5dd.d/d6d1 d*}i }||\}}|jrd7|d8<