Ë ¦)ÅŠª!ˆãó¨—ddlZddlZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z m Z mZddlmZmZmZm Z mZddlmZiZiZiZgZhd£Zd0d„Zd „Zd0d „Zd „Zd „Zd1d „Z d„Z!d„Z"dZ#d„Z$d„Z%d0d„Z&d„Z'd„Z(d0d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d1d„Z/d„Z0Gd„d«Z1d „Z2d0d!„Z3d"„Z4d#„Z5d$„Z6d%„Z7d&„Z8d'„Z9d(„Z:d)„Z;d*„Zd-„Z?d.„Z@d/„ZAy)4éNé)Ú_Úgettext)ÚgetattrÚopenÚsetattr)ÚcmdutilÚ configitemsÚerrorÚpycompatÚutil)Ú stringutil> ócoloróhgciaóshelveóhbisectóinotifyóinterhgóprogressó bookmarksó parentrevspecc#óp‡K—‰rˆfd„}nd„}tD]}t|}|sŒ||«sŒ||f–—Œy­w)Ncój•—dD]-}‰jd||z«}|€Œ|jd«rŒ-yy)N)s%sóhgext.%só extensionsó!T)ÚconfigÚ startswith)ÚnameÚformatÚconfÚuis €ú8usr/lib/python3.12/site-packages/mercurial/extensions.pyÚenabledzextensions..enabled9s5ø€Û.�Ø—y‘y °¸± Ó>�ØÑ#¨D¯O©O¸DÕ,AÙñ/ócó—y)NT©)rs r#Úzextensions..@s€˜tr%)Ú_orderÚ _extensions)r"r$rÚmodules` r#Ú extensionsr,6s=øèø€Ù õ ñ$ˆßˆÜ˜TÑ"ˆÚ ‘g˜d•mؘ�,Ó ñùs ƒ 6¤6­ 6cóæ—d} t|}|s t|«‚|S#t$rKtj«D]1\}}|jd|z«s|jd|z«sŒ/|}nYŒbwxYw)z'return module with given extension nameNó.ó/)r*ÚKeyErrorÚitemsÚendswith)rÚmodÚkÚvs r#Úfindr6Gsz€à €Cðܘ$шñ Ü�t‹nÐØ €Jøô òÜ×%Ñ%Ö'‰DˆAˆqØ�z‰z˜$ ™+Ô&¨!¯*©*°T¸D±[Õ*AØ�Ùð(ùðús„ œA A0Á(A0Á/A0cól—tjj|||r|gnd¬«}|� |j€t d|›d|›�«‚tjj |«}|t j|< |jj|«|S#t$rt j|=‚wxYw)z?import the source file at `path` as `module_name` and return itN)Úsubmodule_search_locationszcould not load z from ) Ú importlibr Úspec_from_file_locationÚloaderÚ ImportErrorÚmodule_from_specÚsysÚmodulesÚ exec_moduleÚ Exception)Ú module_nameÚpathÚpackageÚspecr+s r#Ú _loadsourcerFVsª€ä �>‰>× 1Ñ 1ØØ Ù07 G¡9¸Tð 2ó €Dð  €|�t—{‘{Ð*ݺÁdÐKÓLÐLÜ �^‰^× ,Ñ ,¨TÓ 2€FØ%„C‡K�K� ÑðØ � ‰ ×Ñ Ô'ð €Møô òÜ �K‰K˜ Ð $Ø ðús Á:BÂB3cóÄ—|jdd«}tjtj|««}t j |«}t j |«}t jj|«r,t|t jj|d«|¬«S t||«S#t$r}|js||_ ‚d}~wwxYw)Nr.ó_z __init__.py)rD) Úreplacer ÚnormpathÚ expandpathr ÚfsdecodeÚosrCÚisdirrFÚjoinÚIOErrorÚfilename)rCrBÚexcs r#ÚloadpathrSis±€Ø×%Ñ% d¨DÓ1€KÜ �=‰=œŸ™¨Ó.Ó /€DÜ×#Ñ# KÓ0€KÜ × Ñ ˜TÓ "€DÜ ‡w�w‡}�}�TÔäØ œŸ™Ÿ™ d¨MÓ:ÀDô ð ð ܘ{¨DÓ1Ð 1øÜò Ø—<’<Ø#�” Ø ûð úsÂ1 B=Â= CÃCÃCcó�—ttj|««}|jd«}|ddD]}t ||«}Œ|S)z#import and return the moduler.rN)Ú __import__r ÚsysstrÚsplitr)rr3Ú componentsÚcomps r#Ú_importhrZ|sD€ä ”X—_‘_ TÓ*Ó +€CØ—‘˜DÓ!€Jؘ1˜2“ˆÜ�c˜4Ó ‰ðà €Jr%có—|rt|d|z«}|S td|z«}|S#t$r]}|r||d|zd|z« td|z«}n0#t$r$}|r ||d|z|«t|«}Yd}~nd}~wwxYwYd}~|Sd}~wwxYw)Nrs hgext3rd.%s)rSrZr<)rrCÚ reportfuncr3Úerrs r#Ú _importextr^…s­€Ù ô�t˜[¨4Ñ/Ó0ˆð €Jð %ܘ;¨Ñ-Ó.ˆCð €Jøôò %ÙÙ˜3  ¨dÑ 2°NÀTÑ4IÔJð %ܘ~°Ñ4Ó5‘øÜò %ÙÙ˜s N°TÑ$9¸4Ô@ܘt“n•ûð %þð €Jûð %ús>•%¥ B ®BÁAÁBÁ A=ÁA8Á3BÁ8A=Á=BÂB có´—|jdd|tj|«|«|jr$|j dd«r|j «yyy)Nó extensions* - could not import %s (%s): trying %s sdevelsdebug.extensions)ÚlogrÚ forcebytestrÚ debugflagÚ configboolÚ traceback)r"r]ÚfailedÚnexts r#Ú_reportimporterrorrhšsR€ð‡F�FØØ6ØÜ×Ñ Ó$Ø ô ð ‡|‚|˜Ÿ ™  hÐ0CÔDØ � ‰ �ðE€|r%cóv—t|tttf«r|D]}t ||«Œyt|t «rI|j «D]5\}}t ||«t d|tj|«fz|«Œ7yt|td««rtjd||fzd¬«‚y)Ns%s.%sÚsunicode %r found in %ssuse b'' to make it byte string©Úhint) Ú isinstanceÚlistÚsetÚtupleÚ_rejectunicodeÚdictr1rrbÚtyper ÚProgrammingError)rÚxsÚxr4r5s r#rqrq¨s¥€Ü�"”tœS¤%Ð(Ô)ÛˆAÜ ˜4 Õ #ñä �BœÔ Ø—H‘H–J‰DˆAˆqÜ ˜4 Ô #Ü ˜8 t¬Z×-DÑ-DÀQÓ-GÐ&HÑHÈ!Õ Lñô �Bœ˜S› Ô "Ü×$Ñ$Ø %¨¨T¨ Ñ 2Ø2ô ð ð #r%)snorepos optionalrepos inferrepocóø—|j«D]b\}}|d}tD�cgc]}tj||«rŒ|‘Œ}}|sŒ8t j ddj |«zd|z¬«‚ycc}w)z4Check if extension commands have required attributesrsmissing attributes: %ss, s'use @command decorator to register '%s'rkN)r1Ú _cmdfuncattrsr Ú safehasattrr rtrO)r"ÚcmdtableÚcÚeÚfÚaÚmissings r#Ú_validatecmdtabler€»sx€à—‘Ö ‰ˆˆ1Ø ˆa‰DˆÝ+ÓJ™m˜´4×3CÑ3CÀAÀqÕ3I’1˜mˆÐJÙØ Ü×$Ñ$Ø %¨¯ © °7Ó(;Ñ ;Ø;¸aÑ?ô ð ñ !ùâJs ¤A7ÁA7c óÈ—dD]}t|t||i««ŒdD](}t||d«}|sŒt||j«Œ*t|t|di««y)z=Sanity check for loadable tables provided by extension module)ócmdtableó colortableó configtable)ófilesetpredicateó internalmergeórevsetpredicateótemplatefilteró templatefuncótemplatekeywordNrz)rqrÚ_tabler€)r"r3ÚtÚos r#Ú_validatetablesrŽÈsa€ã 9ˆÜ�qœ' # q¨"Ó-Õ.ð:óˆô �C˜˜DÓ !ˆÚ Ü ˜1˜aŸh™hÕ 'ðô�bœ' # z°2Ó6Õ7r%c óX—|jd«s|jd«r|dd}n|}|tvry|tvr t|S|jdd|«dt|<t j d|«5}t ||tt|««}ddd«|jdd|«|�||xx|jz cc<tdd«}|r“t jd ¬ «}t jtj|«d «} d| vr| d xsd | d xsd f} d|vs| |kDr5td «} |j| ||t j «fz«y|jdd|«t#||«|t|<t$j'|«|jdd|«t j d|«5}t(j+|g«D] } | d¬«Œ  ddd«|jdd|«|S#1swY�Œ‚xYw#1swYŒ+xYw)Nshgext.shgext/ér`s - loading extension: %s zload extension %ss > %s extension loaded in %s Úminimumhgversioné)Únrrs^(third party extension %s requires version %s or newer of Mercurial (current: %s); disabling) s& - validating extension tables: %s s( - invoking registered callbacks: %s zcallbacks extension %sT©Úloadeds > callbacks completed in %s )rÚ_builtinr*rar Útimedcmr^ÚbindrhÚelapsedrÚ versiontuplerrbrÚwarnÚversionrŽr)ÚappendÚ_aftercallbacksÚget) r"rrCÚ loadingtimeÚ shortnameÚstatsr3ÚminverÚcurverÚextminÚmsgÚfns r#Úloadr¨Ús€Ø ‡��yÔ! T§_¡_°YÔ%?ؘ˜�H‰ àˆ Ø”HÑØØ”KÑܘ9Ñ%Ð%؇F�Fˆ<Ð7¸ÔCØ!„K� ÑÜ �‰Ð)¨9Ô 5¸Ü˜˜t¤TÔ*<¸bÓ%AÓBˆ÷ 6à‡F�Fˆ<Ð;¸YÈÔNØÐØ�IÓ %§-¡-Ñ/Óô �SÐ,¨dÓ 3€FÙ Ü×"Ñ" QÔ'ˆÜ×"Ñ"¤:×#:Ñ#:¸6Ó#BÀAÓFˆà �6‰>ؘQ‘i’n 1 f¨Q¡i¢n°1Ð5ˆFà �6‰>˜V fš_Üð<óˆCð �G‰G�C˜9 f¬d¯l©l«nÐ=Ñ=Ô >Ø Ø‡F�Fˆ<ÐCÀYÔOÜ�B˜Ôà „K� ÑÜ ‡M�M�)ÔØ‡F�FØÐBÀIôô �‰Ð.° Ô :¸eÜ!×%Ñ% i°Ö4ˆBÙ �dŽOñ5÷ ;ð‡F�Fˆ<Ð=¸uÔEØ €J÷K 6Ñ 5ú÷B ;Ð :úsÁ7HÇ%H ÈHÈ H)cóü—tt|dd«}|r ||«yy#t$rP}|jd¬«t j |«}|j td«||fz«Yd}~yd}~wwxYw)NÚuisetupT©Úforceó&*** failed to set up extension %s: %s F©rr*rArerrbr›r)rr"rªÚinstr¦s r#Ú _runuisetupr° sw€Ü”k $Ñ'¨°DÓ9€GÙð Ù �BŒKñ øô ò Ø �L‰L˜tˆLÔ $Ü×)Ñ)¨$Ó/ˆCØ �G‰G”AÐ@ÓAÀTÈ3ÀKÑOÔ PÜûð  úó˜"¢ A;«AA6Á6A;cóü—tt|dd«}|r ||«yy#t$rP}|jd¬«t j |«}|j td«||fz«Yd}~yd}~wwxYw)NÚextsetupTr«r­Fr®)rr"r³r¯r¦s r#Ú _runextsetupr´sw€Ü”{ 4Ñ(¨*°dÓ;€HÙð Ù �RŒLñ øô ò Ø �L‰L˜tˆLÔ $Ü×)Ñ)¨$Ó/ˆCØ �G‰G”AÐ@ÓAÀTÈ3ÀKÑOÔ PÜûð  úr±c óT —tjt«}|jd«}|�|D��cgc]\}}||vsŒ ||f‘Œ}}}|D��cgc]\}}d|vsŒ ||f‘Œ}}}t t «}|j dd|rdnd«|j ddt |««tjd«5}|jdd «d }|D]F\} } | r0| d d d k(r(| tvr|j dd | «| d dt| <Œ8 t|| | |«ŒH ddd«|j ddt t «|z «dtdfg}|j dd«t7|||«t9«}|j dd«tjd«5}t |dD]�} |j dd| «tjd| «5}t;| |«s$|j dd| «|j=| «ddd«|j dd| |«|| xx|j>z cc<Œ‘ ddd«|j dd «|j dd!«tjd"«5}t |dD]”} | |vrŒ|j dd#| «tjd$| «5}tA| |«s$|j dd%| «|j=| «ddd«|j dd&| |«|| xx|j>z cc<Œ– ddd«|j dd'«|D]} |j dd(| «dtB| <Œ |j dd)«tjd*«5}tDD]5}|tBvrŒ tD|D]}|j dd+|«|d,¬-«Œ Œ7 ddd«|j dd.|«tDjG«d d/l$m%}m&}m'}m(}m)}m*}m+}m,}|j dd0«d1|d2fd3|d4fd5|d6fd7|d8fd9|d6fd:|d;fd<|d=fd>|d?fg}tjd@«5}t7|||«ddd«|j ddA|«t[|«D],} |j ddB| tj\|| ««Œ.|j ddC«ycc}}wcc}}w#t$�rl} tj| «} | rtd«} | | | | fz} ntd«} | | | fz} |j!«}|jd| «d }|j#|«tj$|j'dd««rXd}t)| t*j,«r| j.r | j.}|€ td«}t+j0| |¬«‚|j3d| z«t)| t*j,«r3| j.r'|j3td«| j.z«|j5«Yd} ~ �Œud} ~ wwxYw#1swY�Œ5xYw#1swY�ŒUxYw#1swY�Œ,xYw#1swY�Œ‹xYw#1swY�ŒbxYw#1swY�ŒÊxYw#1swY�Œ=xYw)DNró:r`sloading %sextensions s additional r%s- processing %d entries zload all extensionsó*rrrs$ - skipping disabled extension: %s s+failed to import extension "%s" from %s: %ss#failed to import extension "%s": %ssrequiredsnosSloading of this extension was required, see `hg help config.extensions` for detailsrks*** %s s *** (%s) s&> loaded %d extensions, total time %s r„sloadconfigtables!- loading configtable attributes s- executing uisetup hooks z all uisetups - running uisetup for %s z uisetup %ss& - the %s extension uisetup failed s > uisetup for %s took %s s> all uisetup took %s s- executing extsetup hooks z all extsetups - running extsetup for %s z extsetup %ss' - the %s extension extsetup failed s > extsetup for %s took %s s> all extsetup took %s s$ - disabling broken %s extension s%- executing remaining aftercallbacks Úaftercallbackss. - extension %s not loaded, notify callbacks Fr”s+> remaining aftercallbacks completed in %s )ÚcolorÚcommandsÚ filemergeÚfilesetÚrevsetÚtemplatefiltersÚ templatefuncsÚ templatekws)- loading extension registration objects r‚s loadcmdtablerƒsloadcolortabler…s loadpredicater†sloadinternalmerger‡rˆs loadfilterr‰s loadfunctionrŠs loadkeywordzload registration objectss0> extension registration object loading took %s s*> extension %s take a total of %s to load sextension loading complete )/Ú collectionsÚ defaultdictÚintr Úlenr)rar r—ÚconfigsuboptionsÚ_disabledextensionsr¨rArrbrÚcopyÚupdateÚ parseboolrŸrmr ÚHintrlÚAbortr›reÚ _loadextraror°Úaddr™r´r*ržÚclearrjr¹rºr»r¼r½r¾r¿rÀÚsortedÚ timecount) r"Ú whitelistr Úresultr4r5Únewindexr¢Údefault_sub_optionsrrCr¯r¦Ú error_msgÚoptionsÚ ext_optionsrlÚearlyextraloadersÚbrokenÚalluisetupstatsÚallextetupstatsr¡r§r¹rºr»r¼r½r¾r¿rÀÚ extraloaderss r#ÚloadallrÝ'sP€Ü×)Ñ)¬#Ó.€KØ �^‰^˜MÓ *€FØÐÙ'-Ô@¡v™V˜a °°i²�1�a’& vˆÑ@Ù#)Ô ;¡6™˜!˜Q¨T¸ª]ˆq�!Šf 6€FÑ ;Ü”6‹{€H؇F�FØØ!Ù"‰¨ôð ‡F�Fˆ<Ð5´s¸6³{ÔCÜ �‰Ð+Ô ,°Ø ×1Ñ1°-ÀÓFÀqÑIÐã"‰LˆT�4ÙØ˜˜!�9 Ò$ØÔ#6Ñ6ØŸ™Ø(ØDØ ôð 15°Q°R°Ô'¨Ñ-Øð #Ü�R˜˜t [Õ1ñ#÷ -ð\‡F�FØØ2Ü ŒF‹ �hÑØ ô ð œÐ&8Ð9ðÐð‡F�Fˆ<Ð>Ô?܈r�8Ð.Ô/ä ‹U€F؇F�Fˆ<Ð7Ô8Ü �‰�mÔ $¨Ü˜8˜9Ó%ˆDØ �F‰F�<Ð!@À$Ô GÜ—‘˜l¨DÔ1°UÜ" 4¨Ô,Ø—F‘FØ$ØBØôð —J‘J˜tÔ$÷2ð �F‰F�<Ð!@À$ÈÔ NØ ˜Ó  §¡Ñ .Ô ñ&÷ %ð‡F�Fˆ<Ð3°_ÔEà‡F�Fˆ<Ð8Ô9Ü �‰�nÔ %¨Ü˜8˜9Ó%ˆDØ�v‰~ØØ �F‰F�<Ð!AÀ4Ô HÜ—‘˜m¨TÔ2°eÜ# D¨"Ô-Ø—F‘FØ$ØCØôð —J‘J˜tÔ$÷3ð �F‰F�<Ð!AÀ4ÈÔ OØ ˜Ó  §¡Ñ .Ô ñ&÷ &ð‡F�Fˆ<Ð4°oÔFãˆØ �‰ˆ|ÐEÀtÔLØ Œ �DÒðð ‡F�Fˆ<ÐBÔCÜ �‰Ð&Ô '¨5ß(ˆIØœKÑ'Øä% iÔ0�Ø—‘Ø ØFØôñ ˜%Ö ñ 1ñ )÷ (ð‡F�Fˆ<ÐHÈ%ÔPô×ÑÔ÷ ÷ ó ð"‡F�Fˆ<ÐFÔGà �h Ð0Ø ˜Ð0Ð1Ø ˜gÐ'7Ð8Ø ˜9Ð&:Ð;Ø ˜VÐ%5Ð6Ø ˜O¨]Ð;Ø ˜-¨Ð9Ø ˜Z¨Ð8ð €Lô �‰Ð1Ô 2°eÜ�2�x Ô.÷ 3à‡F�FØØ<Ø ôô�{Ö#ˆØ �‰Ø Ø :Ø Ü �N‰N˜; tÑ,Ó -õ  ð$ð‡F�Fˆ<Ð8Õ9ùókAùÛ ;øô0ó #Ü ×-Ñ-¨dÓ3�ÙÜ !ØFó!�Ið $¨¨cÐ!2Ñ2‘Iä !Ð"HÓ I�IØ $¨ Ñ,�Ià-×2Ñ2Ó4�Ø ×1Ñ1°-ÀÓFÀqÑI� Ø—‘˜{Ô+Ü×'Ñ'¨¯ © °KÀÓ(GÔHØ�DÜ! $¬¯ © Ô3¸¿ º Ø#Ÿy™y˜Ø�|Ü ðKó ˜ô Ÿ+™+ i°dÔ;Ð;à—G‘G˜[¨IÑ5Ô6Ü! $¬¯ © Ô3¸¿ º ØŸ™¤ -Ó 0°4·9±9Ñ <Ô=Ø—L‘L—N’Nûð9 #ú÷! -Ñ ,ú÷P2Ñ1ú÷ %Ñ $ú÷*3Ñ2ú÷ &Ñ %ú÷. (Ñ 'ú÷^ 3Ñ 2ús®² S ¿S Á SÁSÂ:AYÄ SÄYÆ"6Y)Ç1YÈ 5Y)Ê;ZÊ<1Y6Ë-5ZÎ?ZÑZÓ Y Ó E!YÙYÙY Ù YÙYÙY& Ù!Y)Ù)Y3Ù6Z Ù;ZÚZ ÚZÚZ'có–—t|dD]=}t|}|sŒ|D]*\}}}t||d«}|€Œt||«|||«Œ,Œ?y©N)r)r*r) r"rÓrÜrr+ÚobjnameÚ loadermodÚ loadernameÚextraobjs r#rÌrÌãs]€Ü�x�yÓ!ˆÜ˜TÑ"ˆÙØ ã.:Ñ *ˆG�Y  ܘv w°Ó5ˆHØÑ#Ø.”˜  :Ó.¨r°4¸ÕBñ/;ñ "r%cóˆ—|tvrt|du}||¬«ytj|g«j|«y)a›Run the specified function after a named extension is loaded. If the named extension is already loaded, the callback will be called immediately. If the named extension never loads, the callback will be called after all extensions have been loaded. The callback receives the named argument ``loaded``, which is a boolean indicating whether the dependent extension actually loaded. Nr”)r*ržÚ setdefaultr�)Ú extensionÚcallbackr•s r#Ú afterloadedrèïs>€ð”KÑä˜YÑ'¨tÐ3ˆÙ˜Öä×"Ñ" 9¨bÓ1×8Ñ8¸ÕBr%c ó—t|«D]\}}t|dd«}|sŒ ||«Œ y#t$rN}|jd¬«|j t d«|t j|«fz«Yd}~Œtd}~wwxYw)aMRun extension hooks on the given ui to populate additional members, extend the class dynamically, etc. This will be called after the configuration is loaded, and/or extensions are loaded. In general, it's once per ui instance, but in command-server and hgweb, this may be called more than once with the same ui. Ú uipopulateNTr«s.*** failed to populate ui by extension %s: %s )r,rrArer›rrrb)r"rr3Úhookr¯s r#Ú populateuirìsˆ€ô  –^‰ ˆˆcÜ�s˜L¨$Ó/ˆÙØ ð Ù ��Hñ $øô ò Ø �L‰L˜tˆLÔ $Ø �G‰GÜÐDÓEØœ×0Ñ0°Ó6Ð7ñ8÷ ñ ûð ús£.® B·ABÂBcó0‡‡—t‰«sJ‚ˆˆfd„}|S)z·Partial function application Returns a new function that is the partial application of args and kwargs to func. For example, f(1, 2, bar=3) === bind(f, 1)(2, bar=3)có•—‰‰|zi|¤ŽSrßr')r~ÚkwÚargsÚfuncs €€r#Úclosurezbind..closure#sø€Ù�d˜Q‘hÐ& 2Ñ&Ð&r%)Úcallable)rñrðròs`` r#r˜r˜sù€ô �DŒ>Ј>õ'ð €Nr%cóò— |j|_t|d«|_t|d«|_|j j t|di««||_||_y#t$rYŒbwxYw)z.Copy and add some useful attributes to wrapperÚ __module__Ú__doc__Ú__dict__N) Ú__name__ÚAttributeErrorrrõrör÷rÈÚ _origfuncÚ_unboundwrapper)ÚwrapÚorigfnÚunboundwrappers r#Ú_updatewrapperrÿ)sn€ð ØŸ™ˆŒ ô˜f lÓ3€D„Oܘ6 9Ó-€D„L؇M�M×Ñœ ¨°RÓ8Ô9Ø€D„NØ)€DÕøô ò Ù ð ús‚A*Á* A6Á5A6có¶—t|«sJ‚tj||«\}}|j«D] \}}||usŒ |} n|d} t j t j|«t j| ««} t| | |«|�| xj|z c_ t|«} | | d<|� | dxx|z cc<t| «| <|S)a.Wrap the command named `command' in table Replace command in the command table with wrapper. The wrapped command will be inserted into the command table specified by the table argument. The wrapper will be called like wrapper(orig, *args, **kwargs) where orig is the original (wrapped) function, and *args, **kwargs are the arguments passed to it. Optionally append to the command synopsis and docstring, used for help. For example, if your extension wraps the ``bookmarks`` command to add the flags ``--remote`` and ``--all`` you might call this function like so: synopsis = ' [-a] [--remote]' docstring = """ The ``remotenames`` extension adds the ``--remote`` and ``--all`` (``-a``) flags to the bookmarks command. Either flag will show the remote bookmarks known to the repository; ``--remote`` will also suppress the output of the local bookmarks. """ extensions.wrapcommand(commands.table, 'bookmarks', exbookmarks, synopsis, docstring) rr’) rór Úfindcmdr1Ú functoolsÚpartialr Úchecksignaturerÿrörnrp) ÚtableÚcommandÚwrapperÚsynopsisÚ docstringÚaliasesÚentryÚaliasr|ÚkeyrýrüÚnewentrys r#Ú wrapcommandr6sÙ€ô: �GÔ ÐÐ Ü—_‘_ W¨eÓ4�N€GˆUØ—K‘K–M‰ˆˆqØ �Š:؈CÙ ð"ð �1‰X€FÜ × Ñ Ü ×јGÓ$¤d×&9Ñ&9¸&Ó&Aó €Dô�4˜ Ô)ØÐØ � Š ˜ Ñ!� ä�E‹{€HØ€HˆQ�KØÐØ�‹ �xÑ‹ Ü�x“€Eˆ#�JØ €Lr%cóB‡‡—tj|«}t‰«sJ‚|jD]R}||jvsŒ|j|j Št‰«sJ‚ˆˆfd„}||j|_nt urtd|›d|›d�«‚y)z[Wraps a filecache property. These can't be wrapped using the normal wrapfunction. có•—‰‰g|¢­i|¤ŽSrßr')rðÚkwargsrýrs €€r#rüzwrapfilecache..wrapvsø€Ù˜vÐ7¨Ò7°Ñ7Ð7r%ztype 'z' has no property 'Ú'N)r rVróÚ__mro__r÷rñÚobjectrù)ÚclsÚpropnamerÚcurrclsrürýs ` @r#Ú wrapfilecacherjs�ù€ô �‰˜xÓ(€HÜ �GÔ ÐÐ Ø—;”;ˆØ �w×'Ñ'Ò 'Ø×%Ñ% hÑ/×4Ñ4ˆFܘFÔ#Ð #Ð#õ 8ð/3ˆG× Ñ ˜XÑ &Ô +Ù ðð”&ÑÝÂÂhÐOÓPÐPðr%có"—eZdZdZd„Zd„Zd„Zy)Úwrappedfunctionz3context manager for temporarily wrapping a functioncóH—t|«sJ‚||_||_||_yrß)róÚ _containerÚ _funcnameÚ_wrapper)ÚselfÚ containerÚfuncnamers r#Ú__init__zwrappedfunction.__init__ƒs%€Ü˜Ô Ð Ð Ø#ˆŒØ!ˆŒØˆ� r%cóZ—t|j|j|j«yrß)Ú wrapfunctionrrr)r s r#Ú __enter__zwrappedfunction.__enter__‰s€Ü�T—_‘_ d§n¡n°d·m±mÕDr%cóZ—t|j|j|j«yrß)Úunwrapfunctionrrr)r ÚexctypeÚexcvalueres r#Ú__exit__zwrappedfunction.__exit__Œs€Ü�t—‘¨¯©¸¿ ¹ ÕFr%N)rørõÚ __qualname__rör#r&r+r'r%r#rr€s„Ù=ò ò EóGr%rcóö—t|«sJ‚t||«}t|«sJ‚tj|«rt j ||«}n t ||«}t|||«t|||«|S)aµWrap the function named funcname in container Replace the funcname member in the given container with the specified wrapper. The container is typically a module, class, or instance. The wrapper will be called like wrapper(orig, *args, **kwargs) where orig is the original (wrapped) function, and *args, **kwargs are the arguments passed to it. Wrapping methods of the repository object is not recommended since it conflicts with extensions that extend the repository by subclassing. All extensions that need to extend methods of localrepository should use this subclassing trick: namely, reposetup() should look like def reposetup(ui, repo): class myrepo(repo.__class__): def whatever(self, *args, **kwargs): [...extension stuff...] super(myrepo, self).whatever(*args, **kwargs) [...extension stuff...] repo.__class__ = myrepo In general, combining wrapfunction() with subclassing does not work. Since you cannot control what other extensions are loaded by your end users, you should play nicely with others by using the subclass trick. ) rórÚinspectÚismodulerrr˜rÿr)r!r"rrýrüs r#r%r%�sz€ôB �GÔ ÐÐ ä �Y Ó )€FÜ �FÔ ÐÐ Ü×ј Ô"ô× Ñ  ¨&Ó1‰ô�G˜VÓ$ˆÜ�4˜ Ô)Ü ˆI�x Ô&Ø €Mr%có—t||«}|j«}|€|d}|j|«t|||«t |«D]}t |||«Œ|S)a/undo wrapfunction If wrappers is None, undo the last wrap. Otherwise removes the wrapper from the chain of wrappers. Return the removed wrapper. Raise IndexError if wrapper is None and nothing to unwrap; ValueError if wrapper is not None but is not found in the wrapper chain. r)ÚgetwrapperchainÚpopÚremoverÚreversedr%)r!r"rÚchainrýÚws r#r(r(Âs`€ô ˜I xÓ 0€EØ �Y‰Y‹[€F؀ؘ‘(ˆØ ‡L�L�ÔÜ ˆI�x Ô(Ü �eŽ_ˆÜ�Y ¨!Õ,ðà €Nr%có˜—g}t||«}|r9t|«sJ‚|jt|d|««t|dd«}|rŒ9|S)záget a chain of wrappers of a function Return a list of functions: [newest wrapper, ..., oldest wrapper, origfunc] The wrapper functions are the ones passed to wrapfunction, whose first argument is origfunc. rûrúN)rrór�)r!r"rÒr§s r#r1r1×sT€ð€FÜ �˜HÓ %€B٠ܘŒ|Ј|Ø� ‰ ”g˜bÐ"3°RÓ8Ô9Ü �R˜ dÓ +ˆò ð €Mr%có—ddl}i}tj|d«�rtjj tj tj|j«««} tj|«}|D]£}|jd«r6|jdd«d}tjj||«}nC|}tjj||d«}tjj|«sŒ�||vs |tvs|dk(rŒŸ|||<Œ¥ t"j%«D] \}}|sŒ |||<Œ|S#t $rYŒ1wxYw) zAfind paths of disabled extensions. returns a dict of {name: path}rNÚ__file__s.pyr.rs __init__.pys__init__)Úhgextr ryrMrCÚdirnameÚabspathr Úfsencoder9Úlistdirr2ÚrsplitrOÚexistsr)ÚOSErrorrÆr1)r:ÚextsÚextpathÚfilesr|rrCs r#Ú_disabledpathsrEès-€ãà €Dô ×ј˜zÕ*Ü—'‘'—/‘/Ü �L‰Lœ×*Ñ*¨5¯>©>Ó:Ó ;ó ˆð "Ü—J‘J˜wÓ'ˆEó�Ø—:‘:˜fÔ%ØŸ8™8 D¨!Ó,¨QÑ/�DÜŸ7™7Ÿ<™<¨°Ó3‘Dà�DÜŸ7™7Ÿ<™<¨°°NÓC�DÜŸ7™7Ÿ>™>¨$Ô/Ø Ø˜4‘< 4¬6¡>°T¸[Ò5HØØ!��T’ ñô*×/Ñ/Ö1‰ ˆˆdò ؈D�ŠJð 2ð €Køô+ò Ù ð úsÁ.EÅ EÅEcóÞ—g}|j«}|dddk(s|j«s-|j«}|sn|dddk(rŒ|j«sŒ-|dd}|dk(s|dk(rv|dd}|rp|j«j|«r(|j |«d}|r|j |«n)|sy|j |«|j«}|rŒnnydj |«S) zÖreturn the top-level python documentation for the given file Loosely inspired by pydoc.source_synopsis(), but rewritten to handle triple quotes and to return the whole text instead of just the synopsisNró#és"""s'''rr%)ÚreadlineÚstripÚrstripr2rWr�rO)ÚfilerÒÚlineÚstarts r#Ú _moduledocrOsê€ð €Fà �=‰=‹?€DØ ˆr�ˆ(�dÒ  $§*¡*¤,Ø�}‰}‹ˆÙØ ð ˆr�ˆ(�dÓ  $§*¡*¥,ð ��!ˆH€EØ �‚˜% 6š/Ø�A�BˆxˆÙØ�{‰{‹}×%Ñ% eÔ,Ø—z‘z %Ó(¨Ñ+�ÙØ—M‘M $Ô'ØÙØØ �M‰M˜$Ô Ø—=‘=“?ˆDóðà �8‰8�FÓ Ðr%cóª— t|d«5}t|«}ddd«r t|«St d«S#1swYŒ!xYw#t$rYywxYw)zBretrieve help synopsis of a disabled extension (without importing)órbNó(no help text available))rrOrPrr)rCÚsrcÚdocs r#Ú _disabledhelprU/sV€ðÜ �$˜Ô  #ܘS“/ˆC÷ñ  Ü�s‹|ÐäÐ,Ó-Ð-÷Ð ûä òÙðús$‚ AŽ :šAºA¿AÁ AÁAcóp— ddlm}|jj«D��cic]\}}|tvr |t |«“Œc}}Scc}}w#t tf$rYnwxYwt«}|siSi}|j«D]1\}}t|«}|sŒ|dk7sŒtj|«||<Œ3|S)zCfind disabled extensions from hgext. returns a dict of {name: desc}r©Ú __index__s __index__) r:rXÚdocsr1r)rr<rùrErUrÚ firstline)rXrÚdescÚpathsrBrCrTs r#Údisabledr]=sÆ€ð  Ý#ð(Ÿn™n×2Ñ2Ô4ô á4‘ ��dØœ6Ñ!ð ”'˜$“-Ñ Ø4ò ð ùó øô œÐ (ò Ù ð úô Ó €E٠؈ à €DØ—k‘k–m‰ ˆˆdܘDÓ!ˆÚ �4˜<Ó'Ü#×-Ñ-¨cÓ2ˆD�ŠJð$ð €Ks"‚#A ¥AÁA ÁA Á AÁAcó—t«}||vrt||«S ddl}ddlm}t j |d«ry|t vryt|jj|««S#ttf$rYywxYw)zÁ=A>c#óÀK—tj|g«}|rÂ|j«}t|tj «s%|j t j|««ŒQ|jD]`}t|tj«sŒt|jtj«sŒC|jjdk7rŒ]|–—Œb|rŒÁyy­w)z7Scan @command() decorators in the tree starting at noderN) rÁÚdequeÚpopleftrmÚastÚ FunctionDefÚextendÚiter_child_nodesÚdecorator_listÚCallrñÚNameÚid)ÚnodeÚtodoÚds r#Ú _walkcommandrnns¡èø€ä × Ñ ˜d˜VÓ $€DÙ Ø�|‰|‹~ˆÜ˜$¤§¡Ô0Ø �K‰Kœ×,Ñ,¨TÓ2Ô 3Ø Ø×$Ô$ˆAܘa¤§¡Ô*ØÜ˜aŸf™f¤c§h¡hÔ/ØØ�v‰v�y‰y˜IÒ%ØØ‹Gð%ô ùs ‚CCÃCcóÀ—t|d«5}tj|j«|«}ddd«i}t «D]ˆ}|j sŒ|j d}t |tj«r tj|j«}n(t |tj«r |j}nŒ�dgdf||<ŒŠ|S#1swYŒ£xYw)zuConstruct a dummy command table without loading the extension module This may raise IOError or SyntaxError. rQNrr%) rrcÚparseÚreadrnrðrmÚStrr ÚsysbytesÚsÚBytes)rCrSÚrootrzrkr~rs r#Ú_disabledcmdtablerw€s±€ô ˆd�EÔ ˜cÜ�y‰y˜Ÿ™› TÓ*ˆ÷ à€HܘTÖ"ˆØ�yŠyØ Ø �I‰I�a‰LˆÜ �aœŸ™Ô !Ü×$Ñ$ Q§S¡SÓ)‰DÜ ˜œ3Ÿ9™9Ô %Ø—3‘3‰Dà Ø  C˜ˆ�Šð#ð €O÷ Ð ús �%CÃCcó.— t|«} tj|||«\}}|D]}|j|«sŒ|}n|d}t|«} ||| fS#ttf$rYywxYw#t j t jf$rYywxYw)Nr) rwrPÚ SyntaxErrorr rr ÚAmbiguousCommandÚUnknownCommandrrU) r"ÚcmdrrCÚstrictrzr r r{rTs r#Ú_finddisabledcmdr~–s«€ðÜ$ TÓ*ˆðÜ Ÿ™¨¨h¸Ó?‰ˆ�óˆØ �<‰<˜Õ ؈CÙ ðð �a‰jˆÜ ˜Ó €CØ ��sÐ Ðøô ”[Ð !òÙðûô × "Ñ "¤E×$8Ñ$8Ð 9òÙðús"‚ AŽA.ÁA+Á*A+Á.#BÂBcó—t«}|stj|«‚d}|j|d«}|rt |||||¬«}|s,|j «D]\}}t |||||¬«}|sŒn|r|Stj|«‚)zXfind cmd from disabled extensions without importing. returns (cmdname, extname, doc)N)r})rEr r{r2r~r1)r"r|r}r\ÚextrCrs r#Ú disabledcmdr�©s”€ô Ó €EÙ Ü×"Ñ" 3Ó'Ð'à €Cà �9‰9�S˜$Ó €D٠ܘr 3¨¨T¸&ÔAˆÙ àŸ+™+ž-‰JˆD�$Ü" 2 s¨D°$¸vÔFˆCÚÙð(ñ ؈ ä × Ñ ˜sÓ #Ð#r%cóò—i}t«D]g\}}t|j«xs td«}|€J‚|r|j d«d}t j |«j«||<Œi|S)z+return a dict of {name: desc} of extensionsrRr.éÿÿÿÿ)r,rrörrWrrZrJ)r¡rBÚenamer€rTs r#r$r$Âst€à €DÜ –l‰ ˆˆsÜ�c—k‘kÓ"ÒD¤aÐ(CÓ&DˆØˆÐˆÙ Ø—K‘K Ó% bÑ)ˆEÜ ×*Ñ*¨3Ó/×5Ñ5Ó7ˆˆUŠ ð #ð €Kr%cób—tj«D��cgc] \}}|�Œ |‘Œ c}}Scc}}w)z4return short names of extensions that failed to load)r*r1)rr3s r#Ú notloadedr†Ïs-€ä"-×"3Ñ"3Ô"5Ô EÑ"5‘Y�T˜3¸¹ŠDÐ"5Ò EÐEùÓ Es˜ +£+cóv—tj|d«r't|j«r |j«}n%tj|d«r |j }nd}t |ttf«rdjd„|D««}|Stj|«}|S#t$rd}YŒTwxYw)z8return version information from given module as a strings getversionsunknowns __version__r%r.c3óFK—|]}tj|«–—Œy­wrß)r Úbytestr)Ú.0r�s r#Ú z moduleversion..ásèø€ÐA¹°AœH×,Ñ,¨Q×/¹ùs‚!) r ryróÚ getversionrAÚ __version__rmrnrprOrrb)r+rœs r#Ú moduleversionrŽÔsª€ä ×ј  Ô.´8¸F×Úi18nrrr rrrrjr r r r Úutilsrr*rÆržr)r–r,r6rFrSrZr^rhrqrxr€rŽr¨r°r´rÝrÌrèrìr˜rÿrrrr%r(r1rErOrUr]r_rnrwr~r�r$r†rŽr’r'r%r#Úr–s-ðó ÛÛÛÛÛ Û ÷÷ñ÷ õõà€ ØÐØ€Ø €ò €óò" óò&ò&óò* ò  ð ;€ ò  ò8ó$0òf ò óy:òx CòCò*ò, ò *ó1òhQ÷, Gñ Gò /ódò*ò"#òLòB .òò4ò.ò$ò,ó&$ó2 òFò ó*2r%