ó
    6°h  ã                  ó’   • S SK Jr  S SKJrJrJrJrJrJ	r	  SSK
JrJr   " S S5      rS rS rSS
 jrS r SS jrSS jrS rS rg	)é    )Úannotations)ÚcontextÚdagopÚ
extensionsÚhgwebÚpatchÚutilé   )r   Úrevmapc                  óT   • \ rS rSrSrS rS rS r\R                  S 5       r
S rSrg	)
Ú	_lazyfctxé   z<delegates to fctx but do not construct fctx when unnecessaryc                ó(   • X l         X0l        Xl        g ©N©Ú_nodeÚ_pathÚ_repo)ÚselfÚrepoÚnodeÚpaths       Ú</usr/lib/python3/dist-packages/hgext/fastannotate/support.pyÚ__init__Ú_lazyfctx.__init__   s   € ØŒ
ØŒ
Ø�
ó    c                ó   • U R                   $ r   )r   ©r   s    r   r   Ú_lazyfctx.node!   ó   € Ø�z‰zÐr   c                ó   • U R                   $ r   )r   r   s    r   r   Ú_lazyfctx.path$   r    r   c                ón   • [         R                  " U R                  U R                  U R                  5      $ r   )r   Úresolvefctxr   r   r   r   s    r   Ú_fctxÚ_lazyfctx._fctx'   s#   € ä×"Ò" 4§:¡:¨t¯z©z¸4¿:¹:ÓFÐFr   c                ó.   • [        U R                  U5      $ r   )Úgetattrr%   )r   Únames     r   Ú__getattr__Ú_lazyfctx.__getattr__+   s   € Ü�t—z‘z 4Ó(Ð(r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r	   Úpropertycacher%   r*   Ú__static_attributes__© r   r   r   r      s5   † ÙFòò
òð 
×ÑñGó ðGõ)r   r   c           	     óÖ   • / n0 n[         R                  n[        U5       HE  u  nu  pxn	Xy4U;  a  [        XU	5      XGU	4'   US-   n
XGU	4   nX&   nUR	                  U" XºUS95        MG     U$ )z7convert fastannotate outputs to vanilla annotate formatr
   )ÚfctxÚlinenoÚtext)r   ÚannotatelineÚ	enumerater   Úappend)r   Ú	annotatedÚcontentsÚresultsÚfctxmapr8   ÚiÚhshÚlinenumr   r6   r5   Úlines                r   Ú_convertoutputsrC   /   s…   € ð €GØ€GÜ×%Ñ%€LÜ#,¨YÖ#7ÑˆÑˆC˜$Øˆ;˜gÓ%Ü#,¨T¸Ó#=ˆG˜$�KÑ à˜1‘ˆØ˜T�{Ñ#ˆØ‰{ˆØ�‰‘|¨À4ÑHÖIñ $8ð €Nr   c                ó`   • U R                   R                  R                  SS5      =(       d    S$ )z(fctx) -> strs   fastannotates
   mainbranchs   default)r   ÚuiÚconfig)r5   s    r   Ú
_getmasterrG   A   s"   € à�:‰:�=‰=×Ñ °Ó?×MÀ:ÐMr   Nc           	     ó  • [        U 5      n[        R                  " XU5       n UR                  U R	                  5       USSS9u  pVSSS5        W(       a  W(       d   e[        U R                  XV5      $ ! [
         aw    UR                  5         U R                  R                  R                  SU R                  -  5         UR                  U R	                  5       USSS9u  pV NŸ! [
         a    e f = ff = f! , (       d  f       N¸= f)z·like the vanilla fctx.annotate, but do it via fastannotate, and make
the output format compatible with the vanilla fctx.annotate.
may raise Exception, and always return line numbers.
T)ÚmasterÚshowpathÚ	showliness*   fastannotate: %s: rebuilding broken cache
N)rG   r   ÚfctxannotatecontextÚannotateÚrevÚ	ExceptionÚrebuildr   rE   Údebugr   rC   )r5   ÚfollowÚdiffoptsrI   Úacr;   r<   s          r   Ú_doannotaterU   F   sò   € ô
 ˜Ó€Fä	×	$Ò	$ T°8Ô	<Àð	Ø"$§+¡+Ø—‘“
 6°DÀDð #.ð #ÑˆI÷ 
=ö" žÐ!Ð!Ü˜4Ÿ:™: yÓ;Ð;øô ó 
	Ø�J‰JŒLØ�J‰J�M‰M×ÑØ>ÀÇÁÑKôðØ&(§k¡kØ—H‘H“J v¸Èð '2ð 'Ñ#�	™8øô ó Øðúð
	ú÷ 
=Õ	<ús5   £C9¥"A5Á5AC6Ã"C&Ã$C9Ã&C2Ã2C6Ã6C9Ã9
Dc                óB   • [         R                  " USSSS9n[        XS9$ )NTs   annotate)Ú	untrustedÚsectionÚ
whitespace)rS   )r   ÚdifffeatureoptsrU   )Úorigr5   rE   rS   s       r   Ú_hgwebannotater\   b   s(   € Ü×$Ò$Ø
�d K¸Dñ€Hô �tÑ/Ð/r   c                óÆ   • U(       a  U " XX4US9$  [        XU5      $ ! [         a9  nUR                  R                  R	                  SU-  5        U " XXES9s S nA$ S nAff = f)N)ÚskiprevsrS   s7   fastannotate: falling back to the vanilla annotate: %r
)rR   r^   rS   )rU   rO   r   rE   rQ   )r[   r   rR   Ú
linenumberr^   rS   Úexs          r   Ú_fctxannotatera   i   sm   € ö áØ˜*À(ñ
ð 	
ðOÜ˜4¨Ó2Ð2øÜó OØ�
‰
�‰×ÑØGÈ"ÑLô	
ñ �D°(ÑNÕNûð	Oús   ‘ �
A §.AÁA ÁA c                ó´   • [         R                  " XU5       n[        R                  " UR                  5      nS S S 5        U " XX4WS9$ ! , (       d  f       N= f)N)r^   rS   Úprefetchskip)r   rL   r   Ú
revmappath)r[   r   rR   r^   rS   rT   Úskipsets          r   Ú_remotefctxannotaterf   z   sH   € ä	×	$Ò	$ T°8Ô	<ÀÜ—-’- §¡Ó.ˆ÷ 
=áØ˜xÈñð ÷ 
=Õ	<ús   ˜!A	Á	
Ac                 óX   • [         R                  " [        R                  S[        5        g ©NrM   )r   Úwrapfunctionr   Úwebutilr\   r3   r   r   Úreplacehgwebannotaterk   ƒ   s   € Ü×ÒœEŸM™M¨:´~ÕFr   c                 óX   • [         R                  " [        R                  S[        5        g rh   )r   ri   Ú	hgcontextÚbasefilectxra   r3   r   r   Úreplacefctxannotatero   ‡   s   € Ü×ÒœI×1Ñ1°:¼}ÕMr   )TN)FFNN)FNN)Ú
__future__r   Ú	mercurialr   rm   r   r   r   r   r	   Ú r   r   rC   rG   rU   r\   ra   rf   rk   ro   r3   r   r   Ú<module>rs      sV   ðõ #÷÷ ÷÷)ñ )ò,ò$Nô
<ò80ð IMôOô"òGóNr   