ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ A[c@sdZddlmZddlmZmZmZmZmZddl m Z m Z m Z dZ dZdZdZd Zed Zed Zd ejfd YZdS(ug Fixer for Python 3 function parameter syntax This fixer is rather sensitive to incorrect py3k syntax. i(t fixer_base(ttokentStringtNewlinetCommatName(t indentationtsuitifyt DoubleStaru=%(name)s = %(kwargs)s['%(name)s']; del %(kwargs)s['%(name)s']u'if '%(name)s' in %(kwargs)s: %(assign)suelse: %(name)s = %(default)su _3to2kwargsccsd}t|}x||kr||}|j}|jtjkrV|d7}qn|dk rx|jtjkrxPn|j}|j}|dk r|jtj kr|j}|d7}nd}||fV|d7}qWdS(u Generator that yields tuples of (name, default_value) for each parameter in the list If no default is given, then it is default_value is None (not Leaf(token.NAME, 'None')) iiN( tlent prev_siblingttypeRtNAMEtNonet DOUBLESTARtvaluet next_siblingtEQUAL(t raw_paramstcurr_idxtmax_idxt curr_itemt prev_itemtnametnxtt default_value((sO/opt/alt/python27/lib/python2.7/site-packages/libpasteurize/fixes/fix_kwargs.pyt gen_paramss$         cCs|djtjkr?|dj|dj|d}n |d}x5|D])}|jtjkru|jqPtSqPWtSdS(u Removes all keyword-only args from the params list and a bare star, if any. Does not add the kwargs dict if needed. Returns True if more action is needed, False if not (more action is needed if no kwargs dict exists) iiiiN(R RtCOMMAtremoveRtFalsetTrue(Rtkwargs_defaultt kw_paramstparam((sO/opt/alt/python27/lib/python2.7/site-packages/libpasteurize/fixes/fix_kwargs.pyt remove_params+s    cCst}t}x|dD]}|jtjkr5qq|jtjkrW| rWt}q|jtjkr|r|r||jSdS|jtjkrt}qqW|r|SdSdS(u Returns string with the name of the kwargs dict if the params after the first star need fixing Otherwise returns empty string iuN(RR RRR RRR(RRt found_kwargst needs_fixtt((sO/opt/alt/python27/lib/python2.7/site-packages/libpasteurize/fixes/fix_kwargs.pyt needs_fixingAs  t FixKwargscBseZdZdZdZRS(iu^funcdef< 'def' NAME parameters< '(' arglist=typedargslist< params=any* > ')' > ':' suite=any >c Cs?|d}x>t|D],\}}|jtjkr||}PqqWdSt|}|sadSt||jd}|jd}t|} xt|D]\} } | dkr|j dt |j dt t i| d6|d6d| q|j dt |j dt ti| d6| d6d| |j dt |j dt tit i| d6|d6d6| d6|d6d| qW| |_d |jd_t|} | r;|d } t| jd kr| jd jtjkr| jtn| jtdd | jt|ndS(Nuparamsiiunameukwargstprefixudefaultuassignuuarglistiiu (t enumerateR RtSTARR&RtchildrenRRR t insert_childRRt_assign_templatet_else_templatet _if_templateR(R"R Rt append_childRRR(tselftnodetresultstparams_rawlisttititemt new_kwargstsuitet first_stmttidentRRtmust_add_kwargstarglist((sO/opt/alt/python27/lib/python2.7/site-packages/libpasteurize/fixes/fix_kwargs.pyt transform`s<       1.K   .(t__name__t __module__t run_ordertPATTERNR=(((sO/opt/alt/python27/lib/python2.7/site-packages/libpasteurize/fixes/fix_kwargs.pyR'ZsN(t__doc__tlib2to3Rtlib2to3.fixer_utilRRRRRtlibfuturize.fixer_utilRRRR-R/R.t_kwargs_default_nameRR"R&tBaseFixR'(((sO/opt/alt/python27/lib/python2.7/site-packages/libpasteurize/fixes/fix_kwargs.pyts(