��Qc@sgdZddlmZmZddlmZmZmZmZm Z m
Z
dejfd��YZdS(s7
Convert use of sys.exitfunc to use the atexit module.
i�(tpytreet
fixer_base(tNametAttrtCalltCommatNewlinetsymstFixExitfunccBs5eZeZeZdZd�Zd�Zd�ZRS(s�
(
sys_import=import_name<'import'
('sys'
|
dotted_as_names< (any ',')* 'sys' (',' any)* >
)
>
|
expr_stmt<
power< 'sys' trailer< '.' 'exitfunc' > >
'=' func=any >
)
cGstt|�j|�dS(N(tsuperRt__init__(tselftargs((s0/sys/lib/python2.7/lib2to3/fixes/fix_exitfunc.pyR
scCs&tt|�j||�d|_dS(N(R Rt
start_treetNonet
sys_import(Rttreetfilename((s0/sys/lib/python2.7/lib2to3/fixes/fix_exitfunc.pyR
!scCs�d|kr/|jdkr+|d|_ndS|dj�}d|_tjtjtt d�t d���}t
||g|j�}|j|�|jdkr�|j|d�dS|jj
d}|jtjkr|jt��|jt dd��n�|jj}|j
j|j�}|j} tjtjt d �t dd�g�}
tjtj|
g�}|j|dt��|j|d
|�dS(NRtfuncuuatexituregistersKCan't find sys import; Please add an atexit import at the top of your file.iu uimporti(RRtclonetprefixRtNodeRtpowerRRRtreplacetwarningtchildrenttypetdotted_as_namestappend_childRtparenttindextimport_nametsimple_stmttinsert_childR(RtnodetresultsRtregistertcalltnamestcontaining_stmttpositiontstmt_containert
new_importtnew((s0/sys/lib/python2.7/lib2to3/fixes/fix_exitfunc.pyt transform%s2
( t__name__t
__module__tTruetkeep_line_ordert
BM_compatibletPATTERNR
R
R,(((s0/sys/lib/python2.7/lib2to3/fixes/fix_exitfunc.pyRs N(
t__doc__tlib2to3RRtlib2to3.fixer_utilRRRRRRtBaseFixR(((s0/sys/lib/python2.7/lib2to3/fixes/fix_exitfunc.pyt<module>s.
|