Spade
Mini Shell
| Directory:~$ /proc/self/root/usr/lib/python2.7/site-packages/libpasteurize/fixes/ |
| [Home] [System Details] [Kill Me] |
�
,�]c@s�dZddlmZddlmZddlmZmZmZm Z m
Z
mZmZm
Z
mZmZddlmZmZmZd�Zdejfd��YZd S(
uD
Fixer for:
(a,)* *b (,c)* [,] = s
for (a,)* *b (,c)* [,] in d: ...
i����(t
fixer_base(tcount(
tAssigntCommatCalltNewlinetNametNumberttokentsymstNodetLeaf(tindentationtsuitifyt commatizecCs�g}t|�}t|�}|dkr�ttjt|�ttjttjd�ttj ttj
d�t|�g�ttjd�g�g�}|j
|�|j
ttjddd��nttjttjddd�t|�ttjttjd�ttj |dkr(t|�ntdd �ttj
d�|dkryttjttjd
�t|�g�ntdd �g�ttjd�ttjd�g�g�}|j
|�|dkr�|j
ttjddd��ttjt|dd�ttjttjd�ttj ttjttjd
�t|�g�ttj
d�g�ttjd�g�g�} |j
| �nttj|�}
|
S(u�
Accepts num_pre and num_post, which are counts of values
before and after the starg (not including the starg)
Returns a source fit for Assign() from fixer_util
iu[u:u]u+tprefixu iuu-(tunicodeR
R tpowerRttrailerRRtLSQBt subscripttCOLONRtRSQBtappendtPLUStfactortMINUSt
arith_expr(tnum_pretnum_posttLISTNAMEtITERNAMEtchildrentpretposttpre_partt main_partt post_parttsource((sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pytassignment_sourceso
"�
�tFixUnpackingcBs)eZdZd�Zd�Zd�ZRS(u9
expl=expr_stmt< testlist_star_expr<
pre=(any ',')*
star_expr< '*' name=NAME >
post=(',' any)* [','] > '='
source=any > |
impl=for_stmt< 'for' lst=exprlist<
pre=(any ',')*
star_expr< '*' name=NAME >
post=(',' any)* [','] > 'in'
it=any ':'
suite=any>csF�fd�d D�\}}}}g|D]$}|jtjkr)|j�^q)}d|_g|D]$}|jtjkrc|j�^qc}gt||j�g|�D]}|j�^q�}|jt��d|_tt |j
�tt d�|j�g��} t|tt
|�t
|�|j
|j��}
| |
fS(
Nc3s|]}�j|�VqdS(N(tget(t.0tn(tresults(sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pys <genexpr>3supreunameupostusourceu
uulist(upreunameupostusource(ttypeRtNAMEtcloneRRRRRRRRR'tlenR(tselftnodeR,R!tnameR"R&R+ttargett
setup_linet
power_line((R,sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pytfix_explicit_context2s"1 16 00csU�fd�d D�\}}}}g|D]$}|jtjkr)|j�^q)}d|_g|D]$}|jtjkrc|j�^qc}gt||j�g|�D]}|j�^q�}|jt��|j�} d| _tt |j
�tt d�t |j�g��}
t|t
t|�t|�|j
|j��}|
|fS(
u_
Only example of the implicit context is
a for loop, so only fix that.
c3s|]}�j|�VqdS(N(R)(R*R+(R,(sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pys <genexpr>Esupreunameupostuitu
uulist(upreunameupostuit(R-RR.R/RRRRRRRRRR'R0(R1R2R,R!R3R"titR+R4R&R5R6((R,sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pytfix_implicit_context@s"1 16 30cCs�|jd�|_|jd�|_|jd�|jd�}}|dk r�|j||�\}}|j|_t|j�|_|j t
��|j}|j�}|j||�|j||�n|dk r�|j
||�\}}t|�g|jD]} | jtjkr| ^qd}
d|_|
jdj|_t|
jd�|
jd_|
jdt
��|
jd|�|
jdt
��|
jd|�|jd �jt|jd
d��ndS(
u�
a,b,c,d,e,f,*g,h,i = range(100) changes to
_3to2list = list(range(100))
a,b,c,d,e,f,g,h,i, = _3to2list[:6] + [_3to2list[6:-2]] +
_3to2list[-2:]
and
for a,b,*c,d,e in iter_of_iters: do_stuff changes to
for _3to2iter in iter_of_iters:
_3to2list = list(_3to2iter)
a,b,c,d,e, = _3to2list[:2] + [_3to2list[2:-2]] + _3to2list[-2:]
do_stuff
u _3to2listu _3to2iteruexpluimpliuiiulstRu
N(tnew_nameRRR)tNoneR7RRtparenttappend_childRtremovetinsert_childR9R
R
R-R tsuitetvaluetreplaceR(R1R2R,texpltimplR5R6R<titkR@((sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pyt transformSs0
2 (t__name__t
__module__tPATTERNR7R9RG(((sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pyR(&s
N(t__doc__tlib2to3Rt itertoolsRtlib2to3.fixer_utilRRRRRRRR R
Rtlibfuturize.fixer_utilRR
RR'tBaseFixR((((sE/usr/lib/python2.7/site-packages/libpasteurize/fixes/fix_unpacking.pyt<module>sF