관리-도구
편집 파일: main.cpython-39.opt-2.pyc
a �����DOgN.����������������������@���s|���d�dl�mZmZ�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZddl m Z �dd��ZG�dd��de j�Z d d ��Zd dd�ZdS�)�����)�with_statement�print_functionN����)�refactorc�������������� ���C���s(���|�����}�|����}tj|�|||dddd�S�)Nz (original)z(refactored)��)Zlineterm)� splitlines�difflibZunified_diff)�a�b�filename��r����$/usr/lib64/python3.9/lib2to3/main.py� diff_texts���s�����r���c�����������������������s:���e�Zd�Zd ��fdd� Zdd��Z��fdd�Zdd ��Z���ZS�)�StdoutRefactoringToolr���c ����������� ���������sP���||�_�||�_|r&|�tj�s&|tj7�}||�_||�_||�_tt |��� |||��d�S��N)� nobackups� show_diffs�endswith�os�sep�_input_base_dir�_output_dir�_append_suffix�superr����__init__) �selfZfixers�options�explicitr���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�r���)�errors�append�logger�error)r����msg�args�kwargsr���r���r ���� log_errorA���s����zStdoutRefactoringTool.log_errorc����������� ���������sZ��|}|�j�rH|�|�j�r6tj�|�j�|t|�j�d����}ntd||�jf���|�jrX||�j7�}||kr�tj� |�}tj� |�s�|r�t�|��|��d||��|�j �s|d�}tj�|�r�zt�|��W�n�ty����|��d|��Y�n0�zt�||��W�n"�t�y���|��d||��Y�n0�tt|��j}|||||��|�j �s@t�||��||k�rVt�||��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����path�join�len� ValueErrorr����dirname�isdir�makedirs�log_messager����lexists�remove�OSError�renamer���r���� write_file�shutil�copymode) r���Znew_textr���Zold_text�encodingZ orig_filenamer���Zbackup�writer!���r���r ���r8���E���sH���� ��� � z StdoutRefactoringTool.write_filec�����������������C���s����|r|���d|��n�|���d|��|�jr�t|||�}zd|�jd�ur�|�j�,�|D�]}t|��qHtj����W�d�����q�1�st0����Y��n|D�]}t|��q�W�n"�ty����t d|f���Y�d�S�0�d�S�)NzNo changes to %sz Refactored %sz+couldn't encode %s's diff for your terminal) r3���r���r���Zoutput_lock�print�sys�stdout�flush�UnicodeEncodeError�warn)r����old�newr���ZequalZ diff_lines�liner���r���r ����print_outputl���s$���� *�z"StdoutRefactoringTool.print_output)r���r���r���)�__name__� __module__�__qualname__r���r*���r8���rF���� __classcell__r���r���r!���r ���r������s �����'r���c�����������������C���s���t�d|�f�tjd��d�S�)NzWARNING: %s��file)r=���r>����stderr)r'���r���r���r ���rB�������s����rB���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�}|�|�\}}|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��dCS�dD|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�|�-���nBz|�||j|j.|j/��W�n&�tj0�y����t dQtjdA��Y�dS�0�|�1���t2t3|j,��S�)RNz2to3 [options] file|dir ...)�usagez-dz--doctests_only� store_truezFix up doctests only)�action�helpz-fz--fixr$���z1Each FIX specifies a transformation; default: all)rP����defaultrQ���z-jz--processes�storer����intzRun 2to3 concurrently)rP���rR����typerQ���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�strr���zXPut output files in this directory instead of overwriting the input files. Requires -n.)rP���rU���rR���rQ���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:r���z1At least one file or directory argument required.rK���zUse --help to show usage.�����-zCan't write to stdin.r���� exec_functionz%(name)s: %(message)s)�format�levelzlib2to3.mainc�����������������3���s���|�]}��d��|�V��qdS�)�.fix_Nr���)�.0�fix�� fixer_pkgr���r ���� <genexpr>���������zmain.<locals>.<genexpr>�allr]���z7Output in %r will mirror the input directory %r layout.)r���r���r ���z+Sorry, -j isn't supported on this platform.)4�optparseZOptionParserZ add_option� parse_argsrW���r<���rB���r���r���r&���Z add_suffixZno_diffsZ list_fixesr=���r���Zget_all_fix_namesr>���rM���r���rZ����verbose�logging�DEBUG�INFO�basicConfig� getLogger�setZget_fixers_from_packageZnofixr_����add�union� differencer���r,����commonprefixr���r���r1���r0����rstrip�infor����sortedr#����refactor_stdinZ doctests_only� processesZMultiprocessingUnsupportedZ summarizerT����bool)ra���r(����parserru����flagsr���Zfixnamer\���r%���Zavail_fixesZunwanted_fixesr���Zall_presentr_���Z requestedZfixer_namesr���Zrtr���r`���r ����main����s����� ���� � � � �� ��� �� �� � ��rz���)N)Z __future__r���r���r>���r���r���rh���r9���re���r���r���r���ZMultiprocessRefactoringToolr���rB���rz���r���r���r���r ����<module>���s��� g