grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´i† ã@sFdZddlmZddlmZmZmZddlmZGdd„dejƒZ dS)z/Fixer that changes xrange(...) into range(...).é)Ú fixer_base)ÚNameÚCallÚconsuming_calls)ÚpatcompcsheZdZdZdZ‡fdd„Zdd„Zdd„Zd d „Zd d „Z d Z e   e ¡Z dZe   e¡Zdd„Z‡ZS)Ú FixXrangeTzˆ power< (name='range'|name='xrange') trailer< '(' args=any ')' > rest=any* > cstt|ƒ ||¡tƒ|_dS©N)ÚsuperrÚ start_treeÚsetÚtransformed_xranges©ÚselfZtreeÚfilename©Ú __class__©ú0/usr/lib64/python3.9/lib2to3/fixes/fix_xrange.pyr szFixXrange.start_treecCs d|_dSr)r r rrrÚ finish_treeszFixXrange.finish_treecCsD|d}|jdkr| ||¡S|jdkr4| ||¡Stt|ƒƒ‚dS)NÚnameÚxrangeÚrange)ÚvalueÚtransform_xrangeÚtransform_rangeÚ ValueErrorÚrepr©rÚnodeÚresultsrrrrÚ transforms     zFixXrange.transformcCs0|d}| td|jd�¡|j t|ƒ¡dS)Nrr©Úprefix)Úreplacerr"r ÚaddÚidrrrrr$szFixXrange.transform_xrangecCsft|ƒ|jvrb| |¡sbttdƒ|d ¡gƒ}ttdƒ|g|jd�}|dD]}| |¡qN|SdS)NrÚargsÚlistr!Úrest)r%r Úin_special_contextrrZcloner"Z append_child)rrrZ range_callZ list_callÚnrrrr*sÿ ÿ  zFixXrange.transform_rangez3power< func=NAME trailer< '(' node=any ')' > any* >zŸfor_stmt< 'for' any 'in' node=any ':' any* > | comp_for< 'for' any 'in' node=any any* > | comparison< any 'in' node=any any*> cCsf|jdurdSi}|jjdurJ|j |jj|¡rJ|d|urJ|djtvS|j |j|¡od|d|uS)NFrÚfunc)ÚparentÚp1ÚmatchrrÚp2)rrrrrrr)?s  ÿ þzFixXrange.in_special_context)Ú__name__Ú __module__Ú __qualname__Z BM_compatibleZPATTERNr rr rrZP1rÚcompile_patternr-ZP2r/r)Ú __classcell__rrrrr s     rN) Ú__doc__ÚrZ fixer_utilrrrrZBaseFixrrrrrÚs