Mini Shell

Direktori : /lib64/python3.9/lib2to3/__pycache__/
Upload File :
Current File : //lib64/python3.9/lib2to3/__pycache__/main.cpython-39.pyc

a

�DOgN.�@s�dZddlmZmZddlZddlZddlZddlZddlZddl	Z	ddl
mZdd�ZGdd	�d	ej
�Zd
d�Zddd
�ZdS)z
Main program for 2to3.
�)�with_statement�print_functionN�)�refactorc	Cs(|��}|��}tj||||dddd�S)z%Return a unified diff of two strings.z
(original)z(refactored)�)Zlineterm)�
splitlines�difflibZunified_diff)�a�b�filename�r�$/usr/lib64/python3.9/lib2to3/main.py�
diff_textss�rcs>eZdZdZd�fdd�	Zdd�Z�fdd�Zd	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.
    rc		sP||_||_|r&|�tj�s&|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_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|��dS)N)�errors�append�logger�error)r�msg�args�kwargsrrr
�	log_errorAszStdoutRefactoringTool.log_errorc	sZ|}|jrH|�|j�r6tj�|j|t|j�d��}ntd||jf��|jrX||j7}||kr�tj�	|�}tj�
|�s�|r�t�|�|�d||�|j
�s|d}tj�|�r�zt�|�Wnty�|�d|�Yn0zt�||�Wn"t�y|�d||�Yn0tt|�j}|||||�|j
�s@t�||�||k�rVt�||�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�
startswithrr�path�join�len�
ValueErrorr�dirname�isdir�makedirs�log_messager�lexists�remove�OSError�renamerr�
write_file�shutil�copymode)	rZnew_textrZold_text�encodingZ
orig_filenamerZbackup�writer rr
r7EsH
���

�
z StdoutRefactoringTool.write_filecCs�|r|�d|�n�|�d|�|jr�t|||�}zd|jdur�|j�,|D]}t|�qHtj��Wd�q�1st0Yn|D]}t|�q�Wn"ty�t	d|f�YdS0dS)NzNo changes to %sz
Refactored %sz+couldn't encode %s's diff for your terminal)
r2rrZoutput_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__�__doc__rr)r7rE�
__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}|�|�\}}|j�rRd7|d8<|j�sLtd9�d7|_|j�rl|j�sl|�	d:�|j
�r�|j�s�|�	d;�|j�s�|j�r�td<�|j�s�|j�r�|�	d=�|j�r�t
d>�t���D]}t
|��q�|�s�d?S|�st
d@tjdA�t
dBtjdA�dCSdD|v�r:d7}|j�r:t
dEtjdA�dCS|j�rJd7|dF<|j�rZd7|dG<|j�rhtjntj}tjdH|dI�t�dJ�}tt����}	t�fdKdL�|jD��}
t�}|j�rd*}|jD](}
|
dMk�r�d7}n|��dN|
��q�|�r�|	�|�n|}n
|	�|�}|� |
�}t!j"�#|�}|�rR|�$t!j%��sRt!j"�&|��sRt!j"�'|�}|j�rv|�(t!j%�}|�)dO|j|�t*t+|�|t+|�|j|j||j|j
dP�}|j,�s|�r�|�-�nRz|�||j|j.|j/�Wn6tj0�y|j/dk�s�J�t
dQtjdA�YdS0|�1�t2t3|j,��S)Rz�Main 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 ...)�usagez-dz--doctests_only�
store_truezFix up doctests only)�action�helpz-fz--fixr#z1Each FIX specifies a transformation; default: all)rP�defaultrQz-jz--processes�storer�intzRun 2to3 concurrently)rPrR�typerQz-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.)rPrUrRrQz-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.rKzUse --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>��zmain.<locals>.<genexpr>�allr]z7Output in %r will mirror the input directory %r layout.)rrrz+Sorry, -j isn't supported on this platform.)4�optparseZOptionParserZ
add_option�
parse_argsrWr;rArrr%Z
add_suffixZno_diffsZ
list_fixesr<rZget_all_fix_namesr=rMrrZ�verbose�logging�DEBUG�INFO�basicConfig�	getLogger�setZget_fixers_from_packageZnofixr_�add�union�
differencerr+�commonprefixrrr0r/�rstrip�infor�sortedr"�refactor_stdinZ
doctests_only�	processesZMultiprocessingUnsupportedZ	summarizerT�bool)rar'�parserru�flagsrZfixnamer\r$Zavail_fixesZunwanted_fixesrZall_presentr_Z	requestedZfixer_namesrZrtrr`r
�main�s�
����
�
�
�
��
���
��









��
�
��rz)N)rIZ
__future__rrr=rrrhr8rerrrZMultiprocessRefactoringToolrrArzrrrr
�<module>s	g

Zerion Mini Shell 1.0