CasperSecurity

Current Path : /lib/python3.10/lib2to3/__pycache__/
Upload File :
Current File : //lib/python3.10/lib2to3/__pycache__/main.cpython-310.pyc

o

��bcN.�@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)�)�lineterm)�
splitlines�difflib�unified_diff)�a�b�filename�r�#/usr/lib/python3.10/lib2to3/main.py�
diff_textss�rcs@eZdZdZ	d�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__)	�self�fixers�options�explicitrr�input_base_dir�
output_dir�
append_suffix��	__class__rrr$s
zStdoutRefactoringTool.__init__cOs0|j�|||f�|jj|g|�Ri|��dS�N)�errors�append�logger�error)r�msg�args�kwargsrrr�	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�shutil�copymode)	r�new_textr
�old_text�encoding�
orig_filenamer!�backup�writer#rrr;EsN
���

����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)
r6rr�output_lock�print�sys�stdout�flush�UnicodeEncodeError�warn)r�old�newr
�equal�
diff_lines�linerrr�print_outputls,

(�
����z"StdoutRefactoringTool.print_output)rrr)	�__name__�
__module__�__qualname__�__doc__rr-r;rP�
__classcell__rrr#rrs
�'rcCstd|ftjd�dS)NzWARNING: %s��file)rErF�stderr)r*rrrrJ�srJc
stjdd�}|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�rd7|dG<|j�r&tjntj}tjdH|dI�t�dJ�}tt����}	t�fdKdL�|jD��}
t�}|j�rud*}|jD]}
|
dMk�r_d7}�qT|��dN|
��qT|�rr|	�|�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�|j/dk�s�J�t
dQtjdA�YdSw|�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)r[�defaultr\z-jz--processes�storer�intzRun 2to3 concurrently)r[r]�typer\z-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.)r[r`r]r\z-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.rVzUse --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_pkgrr�	<genexpr>�s�zmain.<locals>.<genexpr>�allrhz7Output in %r will mirror the input directory %r layout.)r r!r"z+Sorry, -j isn't supported on this platform.)4�optparse�OptionParser�
add_option�
parse_argsrbrCrJr!rr)�
add_suffix�no_diffs�
list_fixesrEr�get_all_fix_namesrFrXrre�verbose�logging�DEBUG�INFO�basicConfig�	getLogger�set�get_fixers_from_package�nofixrj�add�union�
differencerr/�commonprefixrrr4r3�rstrip�infor�sortedr&�refactor_stdin�
doctests_only�	processes�MultiprocessingUnsupported�	summarizer_�bool)rlr+�parserr��flagsr�fixnamergr(�avail_fixes�unwanted_fixesr�all_presentrj�	requested�fixer_namesr �rtrrkr�main�s�
����
�
�
�
��
���
��










��
�
���r�r%)rT�
__future__rrrFrr	rxr<rorrr�MultiprocessRefactoringToolrrJr�rrrr�<module>s	g
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY