Ë c‡½jskãó— dZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z m Z ddlmZddlmZmZddlmZdd „ZGd „d e«Zd „Zd „Zd„Zd„Zd„ZGd„de«ZGd„de«ZGd„de«Z Gd„de«Z!y)z#Guido van Rossum éN)Úchainé)ÚdriverÚtokenizeÚtoken)Ú find_root)ÚpytreeÚpygram)Ú btm_matchercóΗ t|ggdg«}g}tj|j«D]0\}}}|j d«sŒ|r|dd}|j |«Œ2|S)NÚ*Úfix_é)Ú __import__ÚpkgutilÚ iter_modulesÚ__path__Ú startswithÚappend)Ú fixer_pkgÚ remove_prefixÚpkgÚ fix_namesÚfinderÚnameÚispkgs ú)/usr/lib64/python3.12/lib2to3/refactor.pyÚget_all_fix_namesrsm€ØOÜ �Y  B¨¨Ó .€CØ€IÜ&×3Ñ3°C·L±LÖAш��eØ �?‰?˜6Õ "ÙØ˜A˜B�x�Ø × Ñ ˜TÕ "ð Bð Ðócó —eZdZy)Ú _EveryNodeN©Ú__name__Ú __module__Ú __qualname__©rrr!r!+ó„Ørr!cóä— t|tjtjf«r|j€t ‚|jhSt|tj «r'|jrt|j«St ‚t|tj«r>t«}|jD]#}|D]}|jt|««ŒŒ%|Std|z«‚)Nz$Oh no! I don't understand pattern %s) Ú isinstancer Ú NodePatternÚ LeafPatternÚtyper!ÚNegatedPatternÚcontentÚ_get_head_typesÚWildcardPatternÚsetÚupdateÚ Exception)ÚpatÚrÚpÚxs rr/r//sÆ€ð9ô�#œ×*Ñ*¬F×,>Ñ,>Ð?Ô@ð �8‰8Ð ÜÐ Ø—‘ˆzÐä�#”v×,Ñ,Ô-Ø �;Š;Ü" 3§;¡;Ó/Ð /ÜÐä�#”v×-Ñ-Ô.ä ‹EˆØ—”ˆAÛ�Ø—‘œ¨Ó+Õ,ñððˆä Ð:¸SÑAÓ BÐBrcóZ— tjt«}g}|D]|}|jr2 t |j«}|D]}||j |«ŒŒA|j�||jj |«Œl|j |«Œ~ttjjj«tjj«D]}||j|«Œt|«S#t $r|j |«Y�Œ wxYw©N)Ú collectionsÚ defaultdictÚlistÚpatternr/rr!Ú _accept_typerr Úpython_grammarÚ symbol2numberÚvaluesÚtokensÚextendÚdict)Ú fixer_listÚ head_nodesÚeveryÚfixerÚheadsÚ node_types rÚ_get_headnode_dictrKKs€ð/ä×(Ñ(¬Ó.€JØ €EÛˆØ �=Š=ð 8Ü'¨¯ © Ó6�ó"'�IؘyÑ)×0Ñ0°Õ7ñ"'ð×!Ñ!Ð-ؘ5×-Ñ-Ñ.×5Ñ5°eÕ<à— ‘ ˜UÕ#ðôœ6×0Ñ0×>Ñ>×EÑEÓGÜ!×0Ñ0×7Ñ7ö9ˆ à�9Ñ×$Ñ$ UÕ+ð9ô � Ó Ðøôò $Ø— ‘ ˜U×#ð $ús¯D Ä D*Ä)D*cóN— t|d«D�cgc] }|dz|z‘Œ c}Scc}w)NFÚ.)r)Úpkg_nameÚfix_names rÚget_fixers_from_packagerPdsB€ðô.¨h¸Ô>ó @Ù>�ð �s‰N˜XÓ %Ø>ñ @ð@ùò @s�"có—|Sr9r&)Úobjs rÚ _identityrSks€Ø €Jrcó|‡—d}tjtj|«j«Šˆfd„}t t jtjt jh«}t«} |«\}}||vrŒ|t jk(r|rnöd}nñ|t jk(rÝ|dk(rØ|«\}}|t jk7s|dk7rn¸|«\}}|t jk7s|dk7rn•|«\}}|t jk(r|dk(r |«\}}|t jk(rT|j|«|«\}}|t jk7s|dk7rn |«\}}|t jk(rŒRnn�Œt |«S#t$r Yt |«SwxYw) NFcó.•—t‰«}|d|dfS)Nrr)Únext)ÚtokÚgens €rÚadvancez(_detect_future_features..advancersø€Ü�3‹iˆØ�1‰v�s˜1‘vˆ~ÐrTÚfromÚ __future__ÚimportÚ(Ú,)rÚgenerate_tokensÚioÚStringIOÚreadlineÚ frozensetrÚNEWLINEÚNLÚCOMMENTr1ÚSTRINGÚNAMEÚOPÚaddÚ StopIteration)ÚsourceÚhave_docstringrYÚignoreÚfeaturesÚtpÚvaluerXs @rÚ_detect_future_featuresrros‡ø€Ø€NÜ × "Ñ "¤2§;¡;¨vÓ#6×#?Ñ#?Ó @€CôôœŸ ™ ¤x§{¡{´E·M±MÐBÓ C€FÜ‹u€Hð ØÙ› ‰IˆB�Ø�V‰|ØØ”u—|‘|Ò#Ù!ØØ!%‘Ø”u—z‘zÒ! e¨v¢oÙ#›I‘ ��EØœŸ™Ò# u° Ò'<ØÙ#›I‘ ��EØœŸ™Ò# u°Ò'8ØÙ#›I‘ ��EØœŸ™’> e¨s¢lÙ '£ ‘I�B˜ØœEŸJ™JÒ&Ø—L‘L Ô'Ù '£ ‘I�B˜ØœUŸX™X’~¨°#ªØÙ '£ ‘I�B˜ð œEŸJ™JÔ&ðñ3ô8 �XÓ Ðøô ò Ø Ü �XÓ Ðð úsÁ>DF%ÆF%Æ% F;Æ:F;có —eZdZy)Ú FixerErrorNr"r&rrrtrt—s„Ø&rrtcó¾—eZdZddddœZdZdZdd„Zd„Zd„Zd „Z d „Z d „Z dd „Z dd „Z d„Zdd„Zd„Zd d„Zd„Zd„Z d!d„Zd"d„ZdZdZd„Zd„Zd„Zd„Zd„Zd„Zy)#ÚRefactoringToolF)Úprint_functionÚ exec_functionÚwrite_unchanged_filesÚFixrNcóÞ— ||_|xsg|_|jj«|_|�|jj |«t jj«|_|jdr|jjd=n&|jdr|jjd=|jjd«|_ g|_ tjd«|_g|_d|_t%j&|jt(j*|j¬«|_|j-«\|_|_g|_t5j6«|_g|_g|_t?|j0|j.«D]~}|j@r|j8jC|«Œ+||j.vr|j:jE|«ŒU||j0vsŒd|j<jE|«Œ€tG|j:«|_$tG|j<«|_%y) NrwÚprintrxÚexecryrvF)ÚconvertÚlogger)&ÚfixersÚexplicitÚ_default_optionsÚcopyÚoptionsr2r r?ÚgrammarÚkeywordsÚgetryÚerrorsÚloggingÚ getLoggerrÚ fixer_logÚwroterÚDriverr r~Ú get_fixersÚ pre_orderÚ post_orderÚfilesÚbmÚ BottomMatcherÚBMÚ bmi_pre_orderÚbmi_post_orderrÚ BM_compatibleÚ add_fixerrrKÚbmi_pre_order_headsÚbmi_post_order_heads)ÚselfÚ fixer_namesr„r�rHs rÚ__init__zRefactoringTool.__init__¤sà€ð ð"ˆŒ Ø š BˆŒ Ø×,Ñ,×1Ñ1Ó3ˆŒ Ø Ð Ø �L‰L× Ñ  Ô (Ü×,Ñ,×1Ñ1Ó3ˆŒ à �<‰<Ð(Ò )Ø— ‘ ×%Ñ% gÑ.Ø �\‰\˜/Ò *Ø— ‘ ×%Ñ% fÐ-ð &*§\¡\×%5Ñ%5Ð6MÓ%NˆÔ"؈Œ Ü×'Ñ'Ð(9Ó:ˆŒ ؈ŒØˆŒ Ü—m‘m D§L¡LÜ,2¯N©NØ+/¯;©;ô8ˆŒ ð+/¯/©/Ó*;Ñ'ˆŒ˜œðˆŒ ä×"Ñ"Ó$ˆŒØˆÔØ ˆÔä˜4Ÿ?™?¨D¯N©NÖ;ˆEØ×"Ò"Ø—‘×!Ñ! %Õ(ð˜$Ÿ.™.Ñ(Ø×"Ñ"×)Ñ)¨%Õ0ؘ$Ÿ/™/Ò)Ø×#Ñ#×*Ñ*¨5Õ1ð<ô$6°d×6HÑ6HÓ#IˆÔ Ü$6°t×7JÑ7JÓ$KˆÕ!rc óÜ— g}g}|jD�]w}t|iidg«}|jdd«d}|j|j«r|t |j«d}|j d«}|jdj|D�cgc]}|j«‘Œc}«z} t||«} | |j|j«} | jr0|jdur"||jvr|j!d |«�Œ |j#d |«| j$d k(r|j'| «�Œ@| j$d k(r|j'| «�Œbtd | j$z«‚t)j*d«} |j-| ¬«|j-| ¬«||fScc}w#t$rtd|›d|›�«d‚wxYw)Nr rMréÿÿÿÿÚ_Úz Can't find TzSkipping optional fixer: %szAdding transformation: %sÚpreÚpostzIllegal fixer order: %rÚ run_order©Úkey)r€rÚrsplitrÚ FILE_PREFIXÚlenÚsplitÚ CLASS_PREFIXÚjoinÚtitleÚgetattrÚAttributeErrorrtr„r‹r�Ú log_messageÚ log_debugÚorderrÚoperatorÚ attrgetterÚsort) r›Úpre_order_fixersÚpost_order_fixersÚ fix_mod_pathÚmodrOÚpartsr6Ú class_nameÚ fix_classrHÚkey_funcs rrŽzRefactoringTool.get_fixersÛsÒ€ð ðÐØÐØ ŸK�KˆLܘ\¨2¨r°C°5Ó9ˆCØ#×*Ñ*¨3°Ó2°2Ñ6ˆHØ×"Ñ" 4×#3Ñ#3Ô4Ø#¤C¨×(8Ñ(8Ó$9Ð$:Ð;�Ø—N‘N 3Ó'ˆEØ×*Ñ*¨R¯W©WÉÓ5OÉÀA°a·g±gµiÈÑ5OÓ-PÑPˆJð XÜ# C¨Ó4� ñ˜dŸl™l¨D¯N©NÓ;ˆEØ�~Š~ $§-¡-°tÑ";Ø ¨¯ © Ñ5Ø× Ñ Ð!>ÀÔIÙà �N‰NÐ6¸Ô AØ�{‰{˜eÒ#Ø ×'Ñ'¨Ö.Ø—‘ Ò&Ø!×(Ñ(¨Ö/ä Ð!:¸U¿[¹[Ñ!HÓIÐIð/(ô2×&Ñ& {Ó3ˆØ×Ñ (ÐÔ+Ø×Ñ 8ÐÔ,Ø Ð"3Ð4Ð4ùò-6Pøô"ò XÝ ²xÁÐ!LÓMÐSWÐWð XúsÂG Â9 GÇG+có— ‚r9r&)r›ÚmsgÚargsÚkwdss rÚ log_errorzRefactoringTool.log_errors€Ø*Ø rcóJ— |r||z}|jj|«yr9)rÚinfo©r›r¿rÀs rr°zRefactoringTool.log_messages#€Ø$٠ؘ‘*ˆCØ � ‰ ×јÕrcóH—|r||z}|jj|«yr9)rÚdebugrÅs rr±zRefactoringTool.log_debug s €Ù ؘ‘*ˆCØ � ‰ ×ј#Õrcó— yr9r&)r›Úold_textÚnew_textÚfilenameÚequals rÚ print_outputzRefactoringTool.print_outputs €ð à rcó — |D]H}tjj|«r|j|||«Œ6|j |||«ŒJyr9)ÚosÚpathÚisdirÚ refactor_dirÚ refactor_file)r›ÚitemsÚwriteÚ doctests_onlyÚ dir_or_files rÚrefactorzRefactoringTool.refactorsC€Ø7ã ˆKÜ�w‰w�}‰}˜[Ô)Ø×!Ñ! +¨u°mÕDà×"Ñ" ;°°}ÕEñ !rcó— tjdz}tj|«D]Ï\}}}|jd|«|j «|j «|D]m}|j d«rŒtj j|«d|k(sŒ;tj j||«} |j| ||«Œo|D� cgc]} | j d«rŒ| ‘Œc} |ddŒÑycc} w)NÚpyzDescending into %srMr) rÏÚextsepÚwalkr±rµrrÐÚsplitextr¬rÓ) r›Údir_namerÕrÖÚpy_extÚdirpathÚdirnamesÚ filenamesrÚfullnameÚdns rrÒzRefactoringTool.refactor_dir sÖ€ð ô —‘˜TÑ!ˆÜ,.¯G©G°HÖ,=Ñ (ˆG�X˜yØ �N‰NÐ/°Ô 9Ø �M‰MŒOØ �N‰NÔ Û!�ØŸ™¨Õ,Ü—G‘G×$Ñ$ TÓ*¨1Ñ-°Ó7Ü!Ÿw™wŸ|™|¨G°TÓ:�HØ×&Ñ& x°¸ ÕFð "ñ )1ÓK© "¸¿ ¹ ÀcÕ8Jš2¨ÑKˆH‘Q‰Kñ->ùòLs ÃC=Ã0C=có‚— t|d«} tj|j «d}|j «tj|d|d¬«5}|j«|fcddd«S#t$r}|jd||«Yd}~yd}~wwxYw#|j «wxYw#1swYyxYw)NÚrbzCan't open %s: %s©NNrr5r¡©ÚencodingÚnewline) ÚopenÚOSErrorrÂrÚdetect_encodingrbÚcloser`Úread)r›rËÚfÚerrrés rÚ_read_python_sourcez#RefactoringTool._read_python_source4s£€ð ð Ü�X˜tÓ$ˆAð Ü×/Ñ/°· ± Ó;¸AÑ>ˆHà �G‰GŒIÜ �W‰W�X˜s¨X¸rÕ BÀaØ—6‘6“8˜XÐ%÷CÑ Bøôò Ø �N‰NÐ.°¸#Ô >Üûð ûð �G‰G�Iúß BÐ Bús.ƒ A7�"B ÁB5Á7 BÂBÂB B2Â5B>có¾— |j|«\}}|€y|dz }|r^|jd|«|j||«}|js||k7r|j |||||«y|jd|«y|j ||«}|js|r.|j r"|j t|«dd|||¬«y|jd|«y)NÚ zRefactoring doctests in %szNo doctest changes in %srŸ)rÕrézNo changes in %s)ròr±Úrefactor_docstringryÚprocessed_fileÚrefactor_stringÚ was_changedÚstr)r›rËrÕrÖÚinputréÚoutputÚtrees rrÓzRefactoringTool.refactor_fileDs߀ØØ×2Ñ2°8Ó<‰ˆˆxØ ˆ=à Ø �‰ ˆÙ Ø �N‰NÐ7¸Ô BØ×,Ñ,¨U°HÓ=ˆFØ×)Ò)¨V°uª_Ø×#Ñ# F¨H°e¸UÀHÕMà—‘Ð9¸8ÕDà×'Ñ'¨¨xÓ8ˆDØ×)Ò)©d°t×7GÒ7Gà×#Ñ#¤C¨£I¨c¨r N°HØ*/¸(ð$õDð—‘Ð1°8Õã à"&§,¡,ˆD�K‰KÕ ûð  ûð #'§,¡,ˆD�K‰KÕ ús)±B C+Â(C&ÃC.Ã&C+Ã+C.Ã.D có¬—tjj«}|rZ|jd«|j |d«}|j s||k7r|j |d|«y|jd«y|j|d«}|j s|r)|jr|j t|«d|«y|jd«y)NzRefactoring doctests in stdinzzNo doctest changes in stdinzNo changes in stdin) ÚsysÚstdinrïr±rõryrör÷rørù)r›rÖrúrûrüs rÚrefactor_stdinzRefactoringTool.refactor_stdinvsª€Ü— ‘ —‘Ó ˆÙ Ø �N‰NÐ:Ô ;Ø×,Ñ,¨U°IÓ>ˆFØ×)Ò)¨V°uª_Ø×#Ñ# F¨I°uÕ=à—‘Ð<Õ=à×'Ñ'¨¨yÓ9ˆDØ×)Ò)©d°t×7GÒ7GØ×#Ñ#¤C¨£I¨y¸%Õ@à—‘Ð4Õ5rcóâ— t|j|j«D]}|j||«Œ|j |j |j««|j |j |j««|jj|j««}t|j««�rÎ|jjD�]™}||vsŒ ||sŒ||jtjj d¬«|j"r-||jtjj$¬«t'||«D�]}|||vr||j)|« t+|«|j.r||j.vrŒF|j1|«}|sŒZ|j3||«}|€Œo|j5|«|j«D]0}|j.sg|_|j.j7|«Œ2|jj|j««}|D]"} | |vrg|| <|| j9|| «Œ$�Œ�Œœt|j««r�ŒÎt|j|j«D]}|j;||«Œ|j<S#t,$rY�ŒƒwxYw)NT)r¦Úreverser¥)rr�r�Ú start_treeÚ traverse_byr™ršr”ÚrunÚleavesÚanyrAr€rµr ÚBaseÚdepthÚkeep_line_orderÚ get_linenor<ÚremoverÚ ValueErrorÚfixers_appliedÚmatchÚ transformÚreplacerrCÚ finish_treerø) r›rürrHÚ match_setÚnodeÚresultsÚnewÚ new_matchesÚfxrs rrzRefactoringTool.refactor_tree†s{€ð ô˜4Ÿ>™>¨4¯?©?Ö;ˆEØ × Ñ ˜T 4Õ (ð<ð ×ј×1Ñ1°4·>±>Ó3CÔDØ ×ј×2Ñ2°D·O±OÓ4EÔFð—G‘G—K‘K § ¡ £ Ó.ˆ ä�)×"Ñ"Ó$Õ%ØŸ™Ÿ��ؘIÒ%¨)°EÓ*:à˜eÑ$×)Ñ)¬f¯k©k×.?Ñ.?ÈÐ)ÔNà×,Ò,ð" %Ñ(×-Ñ-´&·+±+×2HÑ2HÐ-ÔIä $ Y¨uÑ%5× 6˜Ø 9¨UÑ#3Ñ3Ø% eÑ,×3Ñ3°DÔ9ð%Ü% dœOð  ×.Ò.°5¸D×Ò+>Ø>@¨Ô(;Ø$(×$7Ñ$7×$>Ñ$>¸uÕ$Eð -=ð/3¯g©g¯k©k¸#¿*¹*»,Ó.G  Û+6 CØ+.°)Ñ+;Ø79¨ °#©à$-¨c¡N×$9Ñ$9¸+ÀcÑ:JÕ$Kò ,7òA!7ð(ô�)×"Ñ"Ó$Ö%ôb˜4Ÿ>™>¨4¯?©?Ö;ˆEØ × Ñ ˜d DÕ )ð<à×ÑÐøôE *ò%ò%ð%úsÆ K!Ë! K.Ë-K.cóº— |sy|D]R}||jD]>}|j|«}|sŒ|j||«}|€Œ,|j|«|}Œ@ŒTyr9)r,rrr)r›r€Ú traversalrrHrrs rr zRefactoringTool.traverse_byÕsc€ð ñØ ÛˆDØ § ¡ Ô*�ØŸ+™+ dÓ+�ÚØŸ/™/¨$°Ó8�Cؑ؟ ™  SÔ)Ø"™ñ +ñrcó4— |jj|«|€|j|«d}|€y||k(}|j||||«|r|j d|«|j sy|r|j ||||«y|j d|«y)NrzNo changes to %szNot writing changes to %s)r‘rròrÍr±ryÚ write_file)r›rÊrËrÉrÕrérÌs rrözRefactoringTool.processed_fileìsŸ€ð ð � ‰ ×ј(Ô#Ø Ð Ø×/Ñ/°Ó9¸!Ñ<ˆHØÐØØ˜HÑ$ˆØ ×ј( H¨h¸Ô>Ù Ø �N‰NÐ-¨xÔ 8Ø×-Ò-ØÙ Ø �O‰O˜H h°¸(Õ Cà �N‰NÐ6¸Õ Arcób— tj|d|d¬«}|5 |j |«ddd«|j d|«d|_y#t$r}|jd||«Yd}~yd}~wwxYw#t$r}|jd||«Yd}~Œld}~wwxYw#1swYŒuxYw)NÚwr¡rèzCan't create %s: %szCan't write %s: %szWrote changes to %sT)r`rërìrÂrÕr±rŒ)r›rÊrËrÉréÚfprñs rr#zRefactoringTool.write_files©€ð ð  Ü—‘˜ 3°À2ÔFˆBò ð DØ—‘˜Ô"÷ð �‰Ð,¨hÔ7؈� øôò Ø �N‰NÐ0°(¸CÔ @Ü ûð ûôò DØ—‘Ð3°X¸s×CÑCûð Dú÷ˆRúsEƒAžB% A<Á A9ÁA4Á4A9Á< B"ÂBÂB%ÂB"Â"B%Â%B.z>>> z... c óÆ— g}d}d}d}d}|jd¬«D�] }|dz }|j«j|j«rK|�#|j |j ||||««|}|g}|j |j«} |d| }Œ}|�S|j||jz«s#|||jj«zdzk(r|j|«ŒÒ|�#|j |j ||||««d}d}|j|«�Œ|�#|j |j ||||««dj|«S)NrT©Úkeependsrrôr¡) Ú splitlinesÚlstriprÚPS1rCÚrefactor_doctestÚfindÚPS2Úrstriprr¬) r›rúrËÚresultÚblockÚ block_linenoÚindentÚlinenoÚlineÚis rrõz"RefactoringTool.refactor_docstringsl€ð ðˆØˆØˆ ؈؈Ø×$Ñ$¨dÐ$×3ˆDØ �a‰KˆFØ�{‰{‹}×'Ñ'¨¯©Ô1ØÐ$Ø—M‘M $×"7Ñ"7¸¸|Ø8>Àó#JôKà%� ؘ�Ø—I‘I˜dŸh™hÓ'�ؘb˜q˜‘ØÐ$Ø—?‘? 6¨D¯H©HÑ#4Ô5ؘ6 D§H¡H§O¡OÓ$5Ñ5¸Ñ<Ò<Ø— ‘ ˜TÕ"àÐ$Ø—M‘M $×"7Ñ"7¸¸|Ø8>Àó#JôKà�Ø�Ø— ‘ ˜dÖ#ð)4ð* Ð Ø �M‰M˜$×/Ñ/°°|Ø06¸óBô Cà�w‰w�v‹Ðrcó¨— |j|||«}|j||«r“t|«jd¬«}|d|dz ||dz d}} |djd«s |dxxdz cc<||jz|j!d«zg}|r#||D�cgc]}||j"z|z‘Œc}z }|S#t$r†}|jjtj «r(|D]#}|j d|jd««Œ%|jd|||jj|«|cYd}~Sd}~wwxYwcc}w) Nz Source: %srôz+Can't parse docstring in %s line %s: %s: %sTr(rrŸr)Ú parse_blockr3rÚ isEnabledForr‰ÚDEBUGr±r0rÂrr#rrùr*Úendswithr,Úpopr/) r›r2r5r4rËrürñr6rÚclippeds rr-z RefactoringTool.refactor_doctestDsH€ð ð Ø×#Ñ# E¨6°6Ó:ˆDð × Ñ ˜d HÔ -Ü�d“)×&Ñ&°Ð&Ó5ˆCà˜y  q¡˜>¨3¨v°a©x¨y¨>�SˆGà�r‘7×#Ñ# DÔ)Ø�B“˜4‘“ؘdŸh™hÑ&¨¯©°«Ñ3Ð4ˆEÙØ¹sÓC¹s°t˜& 4§8¡8Ñ+¨dÓ2¸sÑCÑC�؈ øô#ò Ø�{‰{×'Ñ'¬¯ © Ô6Û!�DØ—N‘N <°·±¸TÓ1BÕCð"à �N‰NÐHØ# V¨S¯]©]×-CÑ-CÀSô Jà�Lûð  üò Ds$ƒB=ÂEÂ= E ÃA;EÅE ÅE cóX—|jrd}nd}|js|jd|«n4|jd|«|jD]}|j|«Œ|jr3|jd«|jD]}|j|«Œ|jr{t |j«dk(r|jd«n%|jdt |j««|jD]\}}}|j|g|¢­i|¤ŽŒyy) NÚwerez need to bezNo files %s modified.zFiles that %s modified:z$Warnings/messages while refactoring:rzThere was 1 error:zThere were %d errors:)rŒr‘r°r‹rˆr©)r›r@ÚfileÚmessager¿rÀrÁs rÚ summarizezRefactoringTool.summarizeasþ€Ø �:Š:؉DàˆDØ�zŠzØ × Ñ Ð4°dÕ ;à × Ñ Ð6¸Ô =ØŸ œ �Ø× Ñ  Õ&ð#à �>Š>Ø × Ñ ÐCÔ DØŸ>œ>�Ø× Ñ  Õ)ð*à �;Š;Ü�4—;‘;Ó 1Ò$Ø× Ñ Ð!5Õ6à× Ñ Ð!8¼#¸d¿k¹kÓ:JÔKØ#'§;¤;‘��T˜4Ø �× Ñ  Ð4 tÒ4¨tÓ4ñ$/ð rcó~— |jj|j|||««}t«|_|Sr9)rÚ parse_tokensÚ wrap_toksrcr)r›r2r5r4rüs rr9zRefactoringTool.parse_blockxs9€ð ð �{‰{×'Ñ'¨¯©°u¸fÀfÓ(MÓNˆÜ(›{ˆÔ؈ rc#óÌK— tj|j||«j«}|D]+\}}\}}\} } } ||dz z }| |dz z } ||||f| | f| f–—Œ-y­w)Nr)rr_Ú gen_linesÚ__next__) r›r2r5r4rBr,rqÚline0Úcol0Úline1Úcol1Ú line_texts rrFzRefactoringTool.wrap_toks‚s€èø€ØIÜ×)Ñ)¨$¯.©.¸ÀÓ*G×*PÑ*PÓQˆÛDJÑ @ˆD�%™˜% © ¨°°yØ �V˜a‘ZÑ ˆEØ �V˜a‘ZÑ ˆEð ˜  t˜}¨u°d¨m¸YÐFÓ FñEKùs‚A"A$c#óK— ||jz}||jz}|}|D]R}|j|«r|t|«d–—n,||j «dzk(rd–—nt d|›d|›�«‚|}ŒT d–—Œ­w)Nrôzline=z , prefix=r¡)r,r/rr©r0ÚAssertionError)r›r2r4Úprefix1Úprefix2Úprefixr6s rrHzRefactoringTool.gen_lines�s‘èø€ð ð˜4Ÿ8™8Ñ#ˆØ˜4Ÿ8™8Ñ#ˆØˆÛˆDØ�‰˜vÔ&Øœ3˜v›;˜<Ð(Ó(ؘŸ™›¨4Ñ/Ò/Ø“ å$ºTÁ6Ð%JÓKÐK؉FððØŠHðùs‚A?Brç)FF)F)NFNr9)r#r$r%r‚r«r¨r�rŽrÂr°r±rÍrØrÒròrÓr÷rrr rör#r,r/rõr-rCr9rFrHr&rrrvrv›s­„à+0Ø).Ø27ñ9Ðð€LØ€Kó3Lòn&5òPòò ò  ó FóLò(&ó =ò.ó66ò M ò^#ð.GLØ $óBó*ð* €CØ €Cò)òVò:5ò.ò Górrvcó —eZdZy)ÚMultiprocessingUnsupportedNr"r&rrrUrU¤r'rrUcóB‡—eZdZˆfd„Z dˆfd„ Zˆfd„Zˆfd„ZˆxZS)ÚMultiprocessRefactoringToolcóH•—tt|� |i|¤Žd|_d|_yr9)ÚsuperrWr�ÚqueueÚ output_lock©r›rÀÚkwargsrs €rr�z$MultiprocessRefactoringTool.__init__ªs'ø€Ü Ô)¨4Ñ9¸4ÐJÀ6ÒJ؈Œ ؈ÕrcóŽ•—|dk(rtt|� |||«S ddl}|j � td«‚|j«|_|j«|_ t|«D�cgc]}|j|j¬«‘Œ }} |D]}|j«Œtt|� |||«|j j«t|«D]}|j j!d«Œ|D]#}|j#«sŒ|j«Œ%d|_y#t$rt ‚wxYwcc}w#|j j«t|«D]}|j j!d«Œ|D]#}|j#«sŒ|j«Œ%d|_wxYw)Nrrz already doing multiple processes)Útarget)rYrWrØÚmultiprocessingÚ ImportErrorrUrZÚ RuntimeErrorÚ JoinableQueueÚLockr[ÚrangeÚProcessÚ_childÚstartr¬ÚputÚis_alive) r›rÔrÕrÖÚ num_processesr`r7Ú processesr6rs €rrØz$MultiprocessRefactoringTool.refactor¯s”ø€à ˜AÒ ÜÔ4°dÑDØ�u˜mó-ð -ð -Û "ð �:‰:Ð !ÜÐAÓBÐ BØ$×2Ñ2Ó4ˆŒ Ø*×/Ñ/Ó1ˆÔä# MÔ2ó4Ù2˜ð%×,Ñ,°D·K±KÐ,Õ@Ø2ð ð4ð Û�Ø—‘• ðä Ô-¨tÑ =¸eÀUØ>Kô Mð �J‰J�O‰OÔ Ü˜=Ö)�Ø— ‘ —‘˜tÕ$ð*ã�Ø—:‘:•<Ø—F‘F•HððˆD�Jøô)ò -Ü,Ð ,ð -üò 4øð �J‰J�O‰OÔ Ü˜=Ö)�Ø— ‘ —‘˜tÕ$ð*ã�Ø—:‘:•<Ø—F‘F•HððˆD�Jús$�D6Á/#E Â,EÄ6EÅAGÆ*Gcó•—|jj«}|�Q|\}} tt|�|i|¤Ž|jj «|jj«}|�ŒPyy#|jj «wxYwr9)rZr‡rYrWrÓÚ task_done)r›ÚtaskrÀr]rs €rrgz"MultiprocessRefactoringTool._childÌs€ø€Ø�z‰z�~‰~ÓˆØÐ؉LˆD�&ð 'ÜÔ1°4ÑFØð%Ø#ò%ð— ‘ ×$Ñ$Ô&Ø—:‘:—>‘>Ó#ˆDðÓøð — ‘ ×$Ñ$Õ&ús ¤A0Á0B có~•—|j�|jj||f«ytt|�|i|¤ŽSr9)rZrirYrWrÓr\s €rrÓz)MultiprocessRefactoringTool.refactor_file×sAø€Ø �:‰:Ð !Ø �J‰J�N‰N˜D &˜>Õ *äÔ4°dÑIØð!Øñ!ð !r)FFr)r#r$r%r�rØrgrÓÚ __classcell__)rs@rrWrW¨s$ø„ô ð :?Ø õô: $÷!ð!rrW)T)"Ú __author__r`rÏrrr‰r³r:Ú itertoolsrÚpgen2rrrÚ fixer_utilrr¡r r r r’rr3r!r/rKrPrSrrrtÚobjectrvrUrWr&rrÚrwsœððð3€ ó Û ÛÛ ÛÛÛÝ÷+Ñ*Ý!ßÝó ô �ô òCò8ò2@òò%ôP'�ô'ôF�fôFôR  ô ô4! /õ4!r