Ë
    	š„j™  ã                   ó”   — d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZmZ d„ Z G d„ dej*                  «      Zy	)
zD
Fixer for:
(a,)* *b (,c)* [,] = s
for (a,)* *b (,c)* [,] in d: ...
é    )Ú
fixer_base)Úcount)
ÚAssignÚCommaÚCallÚNewlineÚNameÚNumberÚtokenÚsymsÚNodeÚLeaf)ÚindentationÚsuitifyÚ	commatizec                 ón  — g }	 t        | «      }t        |«      }| dkD  rçt        t        j
                  t        |«      t        t        j                  t        t        j                  d«      t        t        j                  t        t        j                  d«      t        |«      g«      t        t        j                  d«      g«      g«      }|j                  |«       |j                  t        t        j                   dd¬«      «       t        t        j
                  t        t        j                  dd¬«      t        |«      t        t        j                  t        t        j                  d«      t        t        j                  | dkD  rt        |«      nt        dd	«      t        t        j                  d«      |dkD  r=t        t        j"                  t        t        j$                  d
«      t        |«      g«      nt        dd	«      g«      t        t        j                  d«      t        t        j                  d«      g«      g«      }|j                  |«       |dkD  �r|j                  t        t        j                   dd¬«      «       t        t        j
                  t        |d¬«      t        t        j                  t        t        j                  d«      t        t        j                  t        t        j"                  t        t        j$                  d
«      t        |«      g«      t        t        j                  d«      g«      t        t        j                  d«      g«      g«      }	|j                  |	«       t        t        j&                  |«      }
|
S # t        $ r t        | «      }t        |«      }Y �Œ™w xY w)z±
    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
    r   ú[ú:ú]ú+ú ©Úprefixé   Ú ú-)ÚunicodeÚ	NameErrorÚstrr   r   Úpowerr	   Útrailerr   r   ÚLSQBÚ	subscriptÚCOLONr
   ÚRSQBÚappendÚPLUSÚfactorÚMINUSÚ
arith_expr)Únum_preÚnum_postÚLISTNAMEÚITERNAMEÚchildrenÚpreÚpostÚpre_partÚ	main_partÚ	post_partÚsources              úX/var/www/html/GAP/venv/lib/python3.12/site-packages/libpasteurize/fixes/fix_unpacking.pyÚassignment_sourcer7      sŽ  € ð €HðÜ�gÓˆÜ�xÓ ˆð �‚{ÜœŸ
™
¤T¨(£^´T¼$¿,¹,ÌÌeÏjÉjÐZ^ÓI_ÔaeÔfj×ftÑftÔw{ô  }B÷  }Hñ  }Hð  JNó  xOô  QWð  X[ó  Q\ð  w]ó  b^ô  `dô  ej÷  eoñ  eoð  quó  `vð  Iwó  6xð  %yó  zˆØ�‰˜Ô!Ø�‰œœUŸZ™Z¨°dÔ;Ô<Ü”T—Z‘Z¤$¤u§z¡z°4ÀÔ"EÄtÈHÃ~ÔW[Ô\`×\hÑ\hÔkoÔpu×pzÑpzð  }Aó  lBô  DHô  IM÷  IWñ  IWð  ipð  stò  itô  Z`ð  adô  Zeô  z~ð  @ð  BEó  zFô  HLô  MR÷  MXñ  MXð  Z^ó  H_ð  _gð  jkò  _kô  aeô  fj÷  fqñ  fqô  txô  y~÷  yDñ  yDð  FJó  tKô  MSð  TXó  MYð  sZô  a[ô  quð  vwð  y|ó  q}ð  Y~ó  Dô  AEô  FK÷  FPñ  FPð  RVó  AWô  Y]ô  ^c÷  ^hñ  ^hð  jnó  Yoð  kpó  Xqð  "ró  s€IØ‡O�O�IÔØ�!ƒ|Ø�‰œœUŸZ™Z¨°dÔ;Ô<ÜœŸ™¤d¨8¸DÔ&AÄ4ÌÏÉÔW[Ô\a×\fÑ\fÐhlÓWmÔosÔtx÷  uCñ  uCô  FJô  KO÷  KVñ  KVô  Y]ô  ^c÷  ^iñ  ^ið  koó  Ypô  rxð  y}ó  r~ð  Xó  F@ô  BFô  GL÷  GRñ  GRð  TXó  BYð  EZó  p[ô  ]aô  bg÷  blñ  blð  nró  ]sð  Wtó  Duð  &vó  wˆ	Ø�‰˜	Ô"Ü”$—/‘/ 8Ó,€FØ€Møô! ò Ü�'‹lˆÜ�8‹}‹ðús   „N ÎN4Î3N4c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚFixUnpackinga9  
    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>c           	      óø  ‡— ˆfd„dD «       \  }}}}|D �cg c]0  }|j                   t        j                  k(  sŒ!|j                  «       ‘Œ2 }}d|_        |D �cg c]0  }|j                   t        j                  k(  sŒ!|j                  «       ‘Œ2 }}t        ||j                  «       gz   |z   «      D �cg c]  }|j                  «       ‘Œ }}|j                  t        «       «       d|_        t        t        | j                  «      t        t        d«      |j                  «       g«      «      }	t        |t        t        |«      t        |«      | j                  | j                  «      «      }
|	|
fS c c}w c c}w c c}w )Nc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­w©N©Úget©Ú.0ÚnÚresultss     €r6   ú	<genexpr>z4FixUnpacking.fix_explicit_context.<locals>.<genexpr>7   s   øè ø€ Ò"a°a 7§;¡;¨q§>Ñ"aùó   ƒ)r0   Únamer1   r5   r   r   Úlist)Útyper   ÚNAMEÚcloner   r   r&   r   r   r	   r-   r   r7   Úlenr.   )ÚselfÚnoderB   r0   rE   r1   r5   rA   ÚtargetÚ
setup_lineÚ
power_lines     `        r6   Úfix_explicit_contextz!FixUnpacking.fix_explicit_context6   s  ø€ Û"aÐ;`Ô"aÑˆˆT�4˜Ø"%Ö>˜Q¨¯©´5·:±:Ó)=ˆq�w‰w�yÐ>ˆÐ>ØˆŒØ#'Ö@˜a¨1¯6©6´U·Z±ZÓ+?�—‘•	Ð@ˆÐ@Ü%.¨s°d·j±j³l°^Ñ/CÀdÑ/JÓ%KÖL �!—'‘'•)ÐLˆÐLð 	�‰”e“gÔØˆŒÜœD §¡Ó/´´d¸7³mÀfÇlÁlÃnÐEUÓ1VÓWˆ
Ü˜FÔ$5´c¸#³hÄÀDÃ	È4Ï=É=ÐZ^×ZgÑZgÓ$hÓiˆ
Ø˜:Ð%Ð%ùò ?ùâ@ùÚLs   –"E-¹E-Á"E2Á;E2Â1E7c           	      ó"  ‡— ˆfd„dD «       \  }}}}|D �cg c]0  }|j                   t        j                  k(  sŒ!|j                  «       ‘Œ2 }}d|_        |D �cg c]0  }|j                   t        j                  k(  sŒ!|j                  «       ‘Œ2 }}t        ||j                  «       gz   |z   «      D �cg c]  }|j                  «       ‘Œ }}|j                  t        «       «       |j                  «       }	d|	_        t        t        | j                  «      t        t        d«      t        | j                  «      g«      «      }
t        |t        t        |«      t        |«      | j                  | j                  «      «      }|
|fS c c}w c c}w c c}w )z_
        Only example of the implicit context is
        a for loop, so only fix that.
        c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr<   r=   r?   s     €r6   rC   z4FixUnpacking.fix_implicit_context.<locals>.<genexpr>I   s   øè ø€ ÒY°!˜wŸ{™{¨1Ÿ~ÑYùrD   )r0   rE   r1   Úitr   r   rF   )rG   r   rH   rI   r   r   r&   r   r   r	   r-   r   r.   r7   rJ   )rK   rL   rB   r0   rE   r1   rS   rA   rM   r5   rN   rO   s     `         r6   Úfix_implicit_contextz!FixUnpacking.fix_implicit_contextD   s0  ø€ ó
 ZÐ7XÔYÑˆˆT�4˜Ø"%Ö>˜Q¨¯©´5·:±:Ó)=ˆq�w‰w�yÐ>ˆÐ>ØˆŒØ#'Ö@˜a¨1¯6©6´U·Z±ZÓ+?�—‘•	Ð@ˆÐ@Ü%.¨s°d·j±j³l°^Ñ/CÀdÑ/JÓ%KÖL �!—'‘'•)ÐLˆÐLð 	�‰”e“gÔØ—‘“ˆØˆŒÜœD §¡Ó/´´d¸7³mÄdÈ4Ï=É=ÓFYÐEZÓ1[Ó\ˆ
Ü˜FÔ$5´c¸#³hÄÀDÃ	È4Ï=É=ÐZ^×ZgÑZgÓ$hÓiˆ
Ø˜:Ð%Ð%ùò ?ùâ@ùÚLs   –"F¹FÁ"FÁ;FÂ1Fc                 óX  — | j                  d«      | _        | j                  d«      | _        |j                  d«      |j                  d«      }}|�š| j	                  ||«      \  }}|j
                  |_        t        |j                  «      |_        |j                  t        «       «       |j                  }|j                  «       }|j                  ||«       |j                  ||«       y|��8| j                  ||«      \  }}t        |«       |j                  D �	cg c]"  }	|	j                  t         j"                  k(  sŒ!|	‘Œ$ c}	d   }
d|_        |
j                  d   j$                  |_        t        |
j                  d	   «      |
j                  d	   _        |
j                  d	t        «       «       |
j                  d	|«       |
j                  d	t        «       «       |
j                  d	|«       |j                  d
«      j'                  t)        | j                  d¬«      «       yyc c}	w )a­  
        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
        Ú	_3to2listÚ	_3to2iterÚexplÚimplNr   r   r   é   Úlstr   r   )Únew_namer-   r.   r>   rP   r   r   ÚparentÚappend_childr   ÚremoveÚinsert_childrT   r   r/   rG   r   ÚsuiteÚvalueÚreplacer	   )rK   rL   rB   rX   rY   rN   rO   r]   ÚiÚkra   s              r6   Ú	transformzFixUnpacking.transformW   s¸  € ð Ÿ™ lÓ3ˆŒØŸ™ lÓ3ˆŒØ—[‘[ Ó)¨7¯;©;°wÓ+?ˆdˆØÐØ%)×%>Ñ%>¸tÀWÓ%MÑ"ˆJ˜
Ø $§¡ˆJÔÜ +¨D¯K©KÓ 8ˆJÔØ×#Ñ#¤G£IÔ.Ø—[‘[ˆFØ—‘“ˆAØ×Ñ  :Ô.Ø×Ñ  :Õ.ØÑØ%)×%>Ñ%>¸tÀWÓ%MÑ"ˆJ˜
Ü�DŒMØ $§¡ÖF˜1°·±¼4¿:¹:Ó1E’QÒFÀqÑIˆEØ #ˆJÔØ %§¡¨qÑ 1× 7Ñ 7ˆJÔÜ'2°5·>±>À!Ñ3DÓ'EˆE�N‰N˜1ÑÔ$Ø×Ñ˜q¤'£)Ô,Ø×Ñ˜q *Ô-Ø×Ñ˜q¤'£)Ô,Ø×Ñ˜q *Ô-Ø�K‰K˜Ó×'Ñ'¬¨T¯]©]À4Ô(HÕIð ùò Gs   Ä"H'Ä?H'N)Ú__name__Ú
__module__Ú__qualname__ÚPATTERNrP   rT   rf   © ó    r6   r9   r9   *   s   „ ð>€Gò&ò&ó&%Jrl   r9   N)Ú__doc__Úlib2to3r   Ú	itertoolsr   Úlib2to3.fixer_utilr   r   r   r   r	   r
   r   r   r   r   Úlibfuturize.fixer_utilr   r   r   r7   ÚBaseFixr9   rk   rl   r6   ú<module>rs      sE   ðñõ Ý ÷A÷ A÷ Aç BÑ Bòô8RJ�:×%Ñ%õ RJrl   