Your IP : 18.118.184.36


Current Path : /opt/alt/python310/lib64/python3.10/lib2to3/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/lib2to3/__pycache__/main.cpython-310.opt-2.pyc

o

6��fN.�@s~	ddlmZmZddlZddlZddlZddlZddlZddlZddl	m
Z
dd�ZGdd�de
j�Z
d	d
�Zd
dd�ZdS)�)�with_statement�print_functionN�)�refactorc	Cs*	|��}|��}tj||||dddd�S)Nz
(original)z(refactored)�)Zlineterm)�
splitlines�difflibZunified_diff)�a�b�filename�r�3/opt/alt/python310/lib64/python3.10/lib2to3/main.py�
diff_textss�rcs>eZdZ		d
�fdd�	Zdd�Z�fdd�Zdd	�Z�ZS)�StdoutRefactoringToolrc		sR	||_||_|r|�tj�s|tj7}||_||_||_tt	|��
|||�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__cOs0|j�|||f�|jj|g|�Ri|��dSr)�errors�append�logger�error)r�msg�args�kwargsrrr
�	log_errorAszStdoutRefactoringTool.log_errorc	sV|}|jr$|�|j�rtj�|j|t|j�d��}n	td||jf��|jr,||j7}||krJtj�	|�}tj�
|�sC|rCt�|�|�d||�|j
s�|d}tj�|�rnzt�|�Wntym|�d|�Ynwzt�||�Wnty�|�d||�Ynwtt|�j}|||||�|j
s�t�||�||kr�t�||�dSdS)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�writer!rr
r8EsN
���

����z StdoutRefactoringTool.write_filecCs�|r
|�d|�dS|�d|�|jrct|||�}z8|jdurF|j�|D]}t|�q%tj��Wd�n1s;wYWdSWdS|D]}t|�qHWdStybt	d|f�YdSwdS)NzNo changes to %sz
Refactored %sz+couldn't encode %s's diff for your terminal)
r3rrZoutput_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*r8rE�
__classcell__rrr!r
rs
�'rcCstd|ftjd�dS)NzWARNING: %s��file)r<r=�stderr)r'rrr
rA�srAc
s�	tjdd�}|jddddd�|jdd	d
gdd�|jd
dddddd�|jddd
gdd�|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}|�|�\}}|jr�d7|d8<|js�td9�d7|_|jr�|js�|�	d:�|j
r�|js�|�	d;�|js�|jr�td<�|js�|jr�|�	d=�|jr�t
d>�t���D]}t
|�q�|s�d?S|s�t
d@tjdA�t
dBtjdA�dCSdD|v�rd7}|j�rt
dEtjdA�dCS|j�rd7|dF<|j�r d7|dG<|j�r'tjntj}tjdH|dI�t�dJ�}tt����}	t�fdKdL�|jD��}
t�}|j�rvd*}|jD]}
|
dMk�r`d7}�qU|��dN|
��qU|�rs|	�|�n|}n|	�|�}|� |
�}t!j"�#|�}|�r�|�$t!j%��s�t!j"�&|��s�t!j"�'|�}|j�r�|�(t!j%�}|�)dO|j|�t*t+|�|t+|�|j|j||j|j
dP�}|j,�s�|�r�|�-�n!z
|�||j|j.|j/�Wntj0�y�t
dQtjdA�YdSw|�1�t2t3|j,��S)RNz2to3 [options] file|dir ...)Zusagez-dz--doctests_only�
store_truezFix up doctests only)�action�helpz-fz--fixr$z1Each FIX specifies a transformation; default: all)rN�defaultrOz-jz--processesZstorer�intzRun 2to3 concurrently)rNrP�typerOz-xz--nofixz'Prevent a transformation from being runz-lz--list-fixeszList available transformationsz-pz--print-functionz0Modify the grammar so that print() is a functionz-ez--exec-functionz/Modify the grammar so that exec() 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.)rNrRrPrOz-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.rJzUse --help to show usage.��-zCan't write to stdin.r�
exec_functionz%(name)s: %(message)s)�format�levelzlib2to3.mainc3s�|]	}�d|VqdS)�.fix_Nr)�.0�fix��	fixer_pkgrr
�	<genexpr>�s�zmain.<locals>.<genexpr>�allrZz7Output in %r will mirror the input directory %r layout.)rrr z+Sorry, -j isn't supported on this platform.)4�optparseZOptionParserZ
add_option�
parse_argsrTr;rArrr&Z
add_suffixZno_diffsZ
list_fixesr<rZget_all_fix_namesr=rLrrW�verbose�logging�DEBUG�INFOZbasicConfigZ	getLogger�setZget_fixers_from_packageZnofixr\�add�union�
differencerr,�commonprefixrrr1r0�rstrip�infor�sortedr#�refactor_stdinZ
doctests_onlyZ	processesZMultiprocessingUnsupportedZ	summarizerQ�bool)r^r(�parserro�flagsrZfixnamerYr%Zavail_fixesZunwanted_fixesrZall_presentr\Z	requestedZfixer_namesrZrtrr]r
�main�s�

����
�
�
�
��
���
��










��
�
���rsr)Z
__future__rrr=rrrdr9rarrrZMultiprocessRefactoringToolrrArsrrrr
�<module>s	g

?>