Your IP : 18.118.33.130


Current Path : /opt/alt/python33/lib64/python3.3/lib2to3/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/lib2to3/__pycache__/refactor.cpython-33.pyo

�
��f�mc@s�dZddlmZdZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZddlmZdd	lmZmZdd
lmZddlmZedd
�ZGdd�de�Zdd�Zdd�Zdd�Zdd�Z ej!ddfkrpddl"Z"e"j#Z$dd�Z%dd�Z&ne#Z$e Z%e Z&dd�Z'Gdd �d e�Z(Gd!d"�d"e)�Z*Gd#d$�d$e�Z+Gd%d&�d&e*�Z,dS('u�Refactoring framework.

Used as a main program, this can refactor any number of files and/or
recursively descend down directories.  Imported as a module, this
provides infrastructure to write your own refactoring tool.
i(uwith_statementu#Guido van Rossum <guido@python.org>N(uchaini(udriverutokenizeutoken(u	find_root(upytreeupygram(u	btm_utils(ubtm_matchercCs�t|ggdg�}tjj|j�}g}xnttj|��D]W}|jd�rI|jd�rI|r�|dd�}n|j	|dd��qIqIW|S(uEReturn a sorted list of all available fix names in the given package.u*ufix_u.pyiNii����(
u
__import__uosupathudirnameu__file__usortedulistdiru
startswithuendswithuappend(u	fixer_pkgu
remove_prefixupkgu	fixer_diru	fix_namesuname((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuget_all_fix_names!suget_all_fix_namescBs|EeZdZdS(u
_EveryNodeN(u__name__u
__module__u__qualname__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
_EveryNode.su
_EveryNodecCs�t|tjtjf�rC|jdkr3t�nt|jg�St|tj�rt|j	rkt
|j	�St�nt|tj�r�t�}x5|j	D]*}x!|D]}|jt
|��q�Wq�W|St
d|��dS(uf Accepts a pytree Pattern Node and returns a set
        of the pattern types which will match first. u$Oh no! I don't understand pattern %sN(u
isinstanceupytreeuNodePatternuLeafPatternutypeuNoneu
_EveryNodeusetuNegatedPatternucontentu_get_head_typesuWildcardPatternuupdateu	Exception(upaturupux((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu_get_head_types2s		
		
u_get_head_typescCstjt�}g}x�|D]�}|jr�yt|j�}Wntk
r_|j|�Yq�XxU|D]}||j|�qgWq|jdk	r�||jj|�q|j|�qWx:t	t
jjj
�t
jj�D]}||j|�q�Wt|�S(u^ Accepts a list of fixers and returns a dictionary
        of head node type --> fixer list.  N(ucollectionsudefaultdictulistupatternu_get_head_typesu
_EveryNodeuappendu_accept_typeuNoneuchainupygramupython_grammaru
symbol2numberuvaluesutokensuextendudict(u
fixer_listu
head_nodesueveryufixeruheadsu	node_type((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu_get_headnode_dictNs"
	

u_get_headnode_dictcs �fdd�t�d�D�S(uN
    Return the fully qualified names for fixers in the package pkg_name.
    csg|]}�d|�qS(u.((u.0ufix_name(upkg_name(u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
<listcomp>ks	u+get_fixers_from_package.<locals>.<listcomp>F(uget_all_fix_namesuFalse(upkg_name((upkg_nameu5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuget_fixers_from_packagegsuget_fixers_from_packagecCs|S(N((uobj((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu	_identitynsu	_identityicCs|jdd�S(Nu
u
(ureplace(uinput((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu_from_system_newlinesusu_from_system_newlinescCs*tjdkr"|jdtj�S|SdS(Nu
(uosulinesepureplace(uinput((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu_to_system_newlineswsu_to_system_newlinesc
s�d}tjtj|�j���fdd�}ttjtj	tj
f�}t�}ydx]|�\}}||kr�q`q`|tjkr�|r�Pnd	}q`|tjkr�|dkr�|�\}}|tjks�|dkr�Pn|�\}}|tjks|dkrPn|�\}}|tjkrV|dkrV|�\}}nxa|tjkr�|j|�|�\}}|tjks�|dkr�Pn|�\}}qYWq`Pq`Wntk
r�YnXt|�S(
Ncst��}|d|dfS(Nii(unext(utok(ugen(u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuadvance�su(_detect_future_features.<locals>.advanceufromu
__future__uimportu(u,FT(uFalseutokenizeugenerate_tokensuiouStringIOureadlineu	frozensetutokenuNEWLINEuNLuCOMMENTusetuSTRINGuTrueuNAMEuOPuaddu
StopIteration(usourceuhave_docstringuadvanceuignoreufeaturesutpuvalue((ugenu5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu_detect_future_features�sD		

u_detect_future_featurescBs|EeZdZdZdS(u
FixerErroruA fixer could not be loaded.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
FixerError�su
FixerErrorcBso|EeZdZid4d6d4d6ZdZdZd3d3dd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
d4d4dd�Zd4d4dd�Zdd�Zd4d4dd�Zdd�Zd4dd�Zdd�Zdd �Zd3d4d3d!d"�Zd3d#d$�Zd%Zd&Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S(5uRefactoringTooluprint_functionuwrite_unchanged_filesuFixufix_cCs�||_|pg|_|jj�|_|dk	rI|jj|�n|jdretj|_	ntj
|_	|jjd�|_g|_
tjd�|_g|_d|_tj|j	dtjd|j�|_|j�\|_|_g|_tj�|_g|_g|_ x}t!|j|j�D]f}|j"rT|jj#|�q2||jkrv|jj$|�q2||jkr2|j j$|�q2q2Wt%|j�|_&t%|j �|_'dS(u�Initializer.

        Args:
            fixer_names: a list of fixers to import
            options: an dict with configuration.
            explicit: a list of fixers to run even if they are explicit.
        uprint_functionuwrite_unchanged_filesuRefactoringTooluconvertuloggerNF((ufixersuexplicitu_default_optionsucopyuoptionsuNoneuupdateupygramu!python_grammar_no_print_statementugrammarupython_grammarugetuwrite_unchanged_filesuerrorsuloggingu	getLoggeruloggeru	fixer_loguFalseuwroteudriveruDriverupytreeuconvertu
get_fixersu	pre_orderu
post_orderufilesubmu
BottomMatcheruBMu
bmi_pre_orderubmi_post_orderuchainu
BM_compatibleu	add_fixeruappendu_get_headnode_dictubmi_pre_order_headsubmi_post_order_heads(uselfufixer_namesuoptionsuexplicitufixer((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu__init__�s<	
								uRefactoringTool.__init__cCs�g}g}x�|jD]�}t|iidg�}|jdd�d}|j|j�rx|t|j�d�}n|jd�}|jdjdd�|D��}yt	||�}Wn(t
k
r�td	||f��YnX||j|j
�}	|	jr:|jdk	r:||jkr:|jd
|�qn|jd|�|	jdkri|j|	�q|	jd
kr�|j|	�qtd|	j��qWtjd�}
|jd|
�|jd|
�||fS(uInspects the options to load the requested patterns and handlers.

        Returns:
          (pre_order, post_order), where pre_order is the list of fixers that
          want a pre-order AST traversal, and post_order is the list that want
          post-order traversal.
        u*u.iNu_ucSsg|]}|j��qS((utitle(u.0up((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
<listcomp>�s	u.RefactoringTool.get_fixers.<locals>.<listcomp>uCan't find %s.%suSkipping implicit fixer: %suAdding transformation: %supreupostuIllegal fixer order: %ru	run_orderukeyi����T(ufixersu
__import__ursplitu
startswithuFILE_PREFIXulenusplituCLASS_PREFIXujoinugetattruAttributeErroru
FixerErroruoptionsu	fixer_loguexplicituTrueulog_messageu	log_debuguorderuappenduoperatoru
attrgetterusort(uselfupre_order_fixersupost_order_fixersufix_mod_pathumodufix_nameupartsu
class_nameu	fix_classufixerukey_func((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
get_fixers�s8#
uRefactoringTool.get_fixerscOs�dS(uCalled when an error occurs.N((uselfumsguargsukwds((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu	log_errorsuRefactoringTool.log_errorcGs'|r||}n|jj|�dS(uHook to log a message.N(uloggeruinfo(uselfumsguargs((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyulog_messages
uRefactoringTool.log_messagecGs'|r||}n|jj|�dS(N(uloggerudebug(uselfumsguargs((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu	log_debugs
uRefactoringTool.log_debugcCsdS(uTCalled with the old version, new version, and filename of a
        refactored file.N((uselfuold_textunew_textufilenameuequal((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuprint_output!suRefactoringTool.print_outputcCsPxI|D]A}tjj|�r5|j|||�q|j|||�qWdS(u)Refactor a list of files and directories.N(uosupathuisdirurefactor_diru
refactor_file(uselfuitemsuwriteu
doctests_onlyudir_or_file((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyurefactor&s
uRefactoringTool.refactorc
Cs�tjd}x�tj|�D]�\}}}|jd|�|j�|j�xe|D]]}|jd�rWtjj|�d|krWtjj||�}	|j	|	||�qWqWWdd�|D�|dd�<qWdS(u�Descends down a directory and refactor every Python file found.

        Python files are assumed to have a .py extension.

        Files and subdirectories starting with '.' are skipped.
        upyuDescending into %su.icSs%g|]}|jd�s|�qS(u.(u
startswith(u.0udn((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
<listcomp>As	u0RefactoringTool.refactor_dir.<locals>.<listcomp>N(
uosuextsepuwalku	log_debugusortu
startswithupathusplitextujoinu
refactor_file(
uselfudir_nameuwriteu
doctests_onlyupy_extudirpathudirnamesu	filenamesunameufullname((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyurefactor_dir/s



uRefactoringTool.refactor_dircCs�yt|d�}Wn<tk
rQ}z|jd||�dSWYdd}~XnXztj|j�d}Wd|j�Xt|dd|��}t	|j
��|fSWdQXdS(uG
        Do our best to decode a Python source file correctly.
        urbuCan't open %s: %sNiuruencoding(NN(uopenuIOErroru	log_erroruNoneutokenizeudetect_encodingureadlineucloseu_open_with_encodingu_from_system_newlinesuread(uselfufilenameufuerruencoding((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu_read_python_sourceCsu#RefactoringTool._read_python_sourcec	Cs|j|�\}}|dkr%dS|d7}|r�|jd|�|j||�}|jsl||kr�|j|||||�q|jd|�ni|j||�}|js�|r�|jr�|jt|�dd	�|d|d|�n|jd|�dS(
uRefactors a file.Nu
uRefactoring doctests in %suNo doctest changes in %siuwriteuencodinguNo changes in %si����(	u_read_python_sourceuNoneu	log_debugurefactor_docstringuwrite_unchanged_filesuprocessed_fileurefactor_stringuwas_changedustr(uselfufilenameuwriteu
doctests_onlyuinputuencodinguoutpututree((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
refactor_fileSs
uRefactoringTool.refactor_filecCs�t|�}d|kr*tj|j_nzby|jj|�}WnEtk
r�}z%|jd||jj	|�dSWYdd}~XnXWd|j|j_X||_
|jd|�|j||�|S(uFRefactor a given input string.

        Args:
            data: a string holding the code to be refactored.
            name: a human-readable name for use in error/log messages.

        Returns:
            An AST corresponding to the refactored input stream; None if
            there were errors during the parse.
        uprint_functionuCan't parse %s: %s: %sNuRefactoring %s(
u_detect_future_featuresupygramu!python_grammar_no_print_statementudriverugrammaruparse_stringu	Exceptionu	log_erroru	__class__u__name__ufuture_featuresu	log_debugu
refactor_tree(uselfudataunameufeaturesutreeuerr((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyurefactor_stringjs		uRefactoringTool.refactor_stringcCs�tjj�}|ro|jd�|j|d�}|jsI||kr_|j|d|�q�|jd�nS|j|d�}|js�|r�|jr�|jt	|�d|�n
|jd�dS(NuRefactoring doctests in stdinu<stdin>uNo doctest changes in stdinuNo changes in stdin(
usysustdinureadu	log_debugurefactor_docstringuwrite_unchanged_filesuprocessed_fileurefactor_stringuwas_changedustr(uselfu
doctests_onlyuinputuoutpututree((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyurefactor_stdin�s
uRefactoringTool.refactor_stdinc
Cs�x-t|j|j�D]}|j||�qW|j|j|j��|j|j|j��|jj|j	��}x�t
|j��rdx�|jjD]�}||kr�||r�||j
dtjjdd�|jr�||j
dtjj�nx\t||�D]G}|||kr9||j|�nyt|�Wntk
r^wYnX|jr}||jkr}qn|j|�}|r|j||�}|dk	rV|j|�x9|j�D]+}|js�g|_n|jj|�q�W|jj|j	��}x?|D]4}	|	|kr7g||	<n||	j||	�qWqVqqWq�q�Wq}Wx-t|j|j�D]}|j||�q{W|j S(u�Refactors a parse tree (modifying the tree in place).

        For compatible patterns the bottom matcher module is
        used. Otherwise the tree is traversed node-to-node for
        matches.

        Args:
            tree: a pytree.Node instance representing the root of the tree
                  to be refactored.
            name: a human-readable name for this tree.

        Returns:
            True if the tree was modified, False otherwise.
        ukeyureverseTN(!uchainu	pre_orderu
post_orderu
start_treeutraverse_byubmi_pre_order_headsubmi_post_order_headsuBMurunuleavesuanyuvaluesufixersusortupytreeuBaseudepthuTrueukeep_line_orderu
get_linenoulisturemoveu	find_rootu
ValueErrorufixers_appliedumatchu	transformuNoneureplaceuappenduextendufinish_treeuwas_changed(
uselfutreeunameufixeru	match_setunodeuresultsunewunew_matchesufxr((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
refactor_tree�sJ 	

	

.uRefactoringTool.refactor_treecCs�|s
dSxr|D]j}xa||jD]R}|j|�}|r%|j||�}|dk	rw|j|�|}qwq%q%WqWdS(uTraverse an AST, applying a set of fixers to each node.

        This is a helper method for refactor_tree().

        Args:
            fixers: a list of fixer instances.
            traversal: a generator that yields AST nodes.

        Returns:
            None
        N(utypeumatchu	transformuNoneureplace(uselfufixersu	traversalunodeufixeruresultsunew((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyutraverse_by�s

uRefactoringTool.traverse_bycCs�|jj|�|dkrB|j|�d}|dkrBdSn||k}|j||||�|r�|jd|�|js�dSn|r�|j||||�n|jd|�dS(uR
        Called when a file has been refactored and there may be changes.
        iNuNo changes to %suNot writing changes to %s(ufilesuappenduNoneu_read_python_sourceuprint_outputu	log_debuguwrite_unchanged_filesu
write_file(uselfunew_textufilenameuold_textuwriteuencodinguequal((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuprocessed_file�s	uRefactoringTool.processed_filec%Cs�yt|dd|�}Wn?tjk
rZ}z|jd||�dSWYdd}~XnXzYy|jt|��Wn;tjk
r�}z|jd||�WYdd}~XnXWd|j�X|jd|�d|_	dS(u�Writes a string to a file.

        It first shows a unified diff between the old text and the new text, and
        then rewrites the file; the latter is only done if the write option is
        set.
        uwuencodinguCan't create %s: %sNuCan't write %s: %suWrote changes to %sT(
u_open_with_encodinguosuerroru	log_erroruwriteu_to_system_newlinesucloseu	log_debuguTrueuwrote(uselfunew_textufilenameuold_textuencodingufuerr((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
write_files*uRefactoringTool.write_fileu>>> u... c
	Cs�g}d}d}d}d}x4|jdd�D] }|d7}|j�j|j�r�|dk	r�|j|j||||��n|}|g}|j|j�}	|d|	�}q1|dk	r
|j||j	�s�|||j	j
�dkr
|j|�q1|dk	r8|j|j||||��nd}d}|j|�q1W|dk	r�|j|j||||��ndj|�S(u�Refactors a docstring, looking for doctests.

        This returns a modified version of the input string.  It looks
        for doctests, which start with a ">>>" prompt, and may be
        continued with "..." prompts, as long as the "..." is indented
        the same as the ">>>".

        (Unfortunately we can't use the doctest module's parser,
        since, like most parsers, it is not geared towards preserving
        the original source.)
        iukeependsiNu
uT(
uNoneu
splitlinesuTrueulstripu
startswithuPS1uextendurefactor_doctestufinduPS2urstripuappendujoin(
uselfuinputufilenameuresultublockublock_linenouindentulinenoulineui((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyurefactor_docstring(s:
	u"RefactoringTool.refactor_docstringc
sjy�j||��}Wn�tk
r�}zj�jjtj�rpx*|D]}�jd|jd��qJWn�jd|||j	j
|�|SWYdd}~XnX�j||�rft|�j
dd
�}|d|d�||dd�}	}|djd�s|dd7<n��j|jd�g}|rf|��fdd	�|D�7}qfn|S(
u�Refactors one doctest.

        A doctest is given as a block of lines, the first of which starts
        with ">>>" (possibly indented), while the remaining lines start
        with "..." (identically indented).

        u
Source: %su
u+Can't parse docstring in %s line %s: %s: %sNukeependsiics!g|]}��j|�qS((uPS2(u.0uline(uindentuself(u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
<listcomp>ms	u4RefactoringTool.refactor_doctest.<locals>.<listcomp>Ti����i����(uparse_blocku	ExceptionuloggeruisEnabledForulogginguDEBUGu	log_debugurstripu	log_erroru	__class__u__name__u
refactor_treeustru
splitlinesuTrueuendswithuPS1upop(
uselfublockulinenouindentufilenameutreeuerrulineunewuclipped((uindentuselfu5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyurefactor_doctestSs$
 	)&u RefactoringTool.refactor_doctestcCs|jrd}nd}|js4|jd|�n1|jd|�x|jD]}|j|�qNW|jr�|jd�x!|jD]}|j|�q�Wn|jrt|j�dkr�|jd�n|jdt|j��x0|jD]"\}}}|j|||�q�WndS(	Nuwereu
need to beuNo files %s modified.uFiles that %s modified:u$Warnings/messages while refactoring:iuThere was 1 error:uThere were %d errors:(uwroteufilesulog_messageu	fixer_loguerrorsulen(uselfuwereufileumessageumsguargsukwds((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu	summarizeps$				
	uRefactoringTool.summarizecCs1|jj|j|||��}t�|_|S(u�Parses a block into a tree.

        This is necessary to get correct line number / offset information
        in the parser diagnostics and embedded into the parse tree.
        (udriveruparse_tokensu	wrap_toksu	frozensetufuture_features(uselfublockulinenouindentutree((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuparse_block�s!uRefactoringTool.parse_blockccs�tj|j||�j�}xe|D]]\}}\}}\}	}
}||d7}|	|d7}	||||f|	|
f|fVq%WdS(u;Wraps a tokenize stream to systematically modify start/end.iN(utokenizeugenerate_tokensu	gen_linesu__next__(uselfublockulinenouindentutokensutypeuvalueuline0ucol0uline1ucol1u	line_text((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu	wrap_toks�s
(uRefactoringTool.wrap_toksccs�||j}||j}|}xo|D]g}|j|�rT|t|�d�Vn4||j�dkrrdVntd||f��|}q'WxdVq�dS(u�Generates lines as expected by tokenize from a list of lines.

        This strips the first len(indent + self.PS1) characters off each line.
        Nu
uline=%r, prefix=%ru(uPS1uPS2u
startswithulenurstripuAssertionError(uselfublockuindentuprefix1uprefix2uprefixuline((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu	gen_lines�s



uRefactoringTool.gen_linesNF( u__name__u
__module__u__qualname__uFalseu_default_optionsuCLASS_PREFIXuFILE_PREFIXuNoneu__init__u
get_fixersu	log_errorulog_messageu	log_debuguprint_outputurefactorurefactor_diru_read_python_sourceu
refactor_fileurefactor_stringurefactor_stdinu
refactor_treeutraverse_byuprocessed_fileu
write_fileuPS1uPS2urefactor_docstringurefactor_doctestu	summarizeuparse_blocku	wrap_toksu	gen_lines(u
__locals__((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuRefactoringTool�s:

4(	O+
uRefactoringToolcBs|EeZdZdS(uMultiprocessingUnsupportedN(u__name__u
__module__u__qualname__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuMultiprocessingUnsupported�suMultiprocessingUnsupportedcse|EeZdZ�fdd�Zd
d
d�fdd�Z�fdd�Z�fdd	�Z�S(uMultiprocessRefactoringToolcs/tt|�j||�d|_d|_dS(N(usuperuMultiprocessRefactoringToolu__init__uNoneuqueueuoutput_lock(uselfuargsukwargs(u	__class__(u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu__init__�s	u$MultiprocessRefactoringTool.__init__ics[|dkr(tt��j|||�Syddl�Wntk
rRt�YnX�jdk	rqtd��n�j	��_�j
��_��fdd�t|�D�}z;x|D]}|j
�q�Wtt��j|||�Wd�jj�x$t|�D]}�jjd�q	Wx'|D]}|j�r*|j�q*q*Wd�_XdS(Niiu already doing multiple processescs%g|]}�jd�j��qS(utarget(uProcessu_child(u.0ui(umultiprocessinguself(u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
<listcomp>�s	u8MultiprocessRefactoringTool.refactor.<locals>.<listcomp>(usuperuMultiprocessRefactoringToolurefactorumultiprocessinguImportErroruMultiprocessingUnsupporteduqueueuNoneuRuntimeErroru
JoinableQueueuLockuoutput_lockurangeustartujoinuputuis_alive(uselfuitemsuwriteu
doctests_onlyu
num_processesu	processesupui(u	__class__(umultiprocessinguselfu5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyurefactor�s2




u$MultiprocessRefactoringTool.refactorc
so|jj�}xY|dk	rj|\}}ztt|�j||�Wd|jj�X|jj�}qWdS(N(uqueueugetuNoneusuperuMultiprocessRefactoringToolu
refactor_fileu	task_done(uselfutaskuargsukwargs(u	__class__(u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu_child�su"MultiprocessRefactoringTool._childcsE|jdk	r(|jj||f�ntt|�j||�SdS(N(uqueueuNoneuputusuperuMultiprocessRefactoringToolu
refactor_file(uselfuargsukwargs(u	__class__(u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu
refactor_file�su)MultiprocessRefactoringTool.refactor_fileF(u__name__u
__module__u__qualname__u__init__uFalseurefactoru_childu
refactor_file(u
__locals__((u	__class__u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyuMultiprocessRefactoringTool�s
uMultiprocessRefactoringTool(-u__doc__u
__future__uwith_statementu
__author__uosusysulogginguoperatorucollectionsuiou	itertoolsuchainupgen2udriverutokenizeutokenu
fixer_utilu	find_rootuupytreeupygramu	btm_utilsubuubtm_matcherubmuTrueuget_all_fix_namesu	Exceptionu
_EveryNodeu_get_head_typesu_get_headnode_dictuget_fixers_from_packageu	_identityuversion_infoucodecsuopenu_open_with_encodingu_from_system_newlinesu_to_system_newlinesu_detect_future_featuresu
FixerErroruobjectuRefactoringTooluMultiprocessingUnsupporteduMultiprocessRefactoringTool(((u5/opt/alt/python33/lib64/python3.3/lib2to3/refactor.pyu<module>	sF
	(��

?>