Ë
    »ÿæiÇ  ã                  óÖ   — d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZ  ej(                  e«      Z G d„ d	e«      Z ej0                  e«       y)
é    )ÚannotationsN)Ú
BadCommandÚInstallationError)Ú
HiddenTextÚdisplay_path)Úmake_command)Úpath_to_url)Ú
RevOptionsÚVersionControlÚ(find_path_to_project_root_from_repo_rootÚvcsc                  óþ   ‡ — e Zd ZdZdZdZdZedd„«       Z	 	 	 	 	 	 	 	 	 	 dd„Z		 d	 	 	 	 	 	 	 	 	 dd„Z
	 d	 	 	 	 	 	 	 	 	 dd„Zedd	„«       Zedd
„«       Zedd„«       Zedd„«       Zedd„«       Zedˆ fd„«       Zˆ xZS )Ú	MercurialÚhgz.hgÚclone)zhg+filezhg+httpzhg+httpszhg+sshzhg+static-httpc                ó   — d| › �gS )Nz--rev=© )Úrevs    úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.pyÚget_base_rev_argszMercurial.get_base_rev_args!   s   € à˜˜�ÐÐó    c                ó4  — |j                  «       }t        j                  d||t        |«      «       |dk  rd}n|dk(  rd}n
|dk(  rd}nd}| j	                  t        d	d
g|¢|‘|‘­Ž «       | j	                  t        dg|¢|j                  «       ‘­Ž |¬«       y )NzCloning hg %s%s to %sr   )z--quieté   r   é   )ú	--verbose)r   z--debugr   z
--noupdateÚupdate©Úcwd)Ú
to_displayÚloggerÚinfor   Úrun_commandr   Úto_args)ÚselfÚdestÚurlÚrev_optionsÚ	verbosityÚrev_displayÚflagss          r   Ú	fetch_newzMercurial.fetch_new%   s¯   € ð "×,Ñ,Ó.ˆÜ�‰Ø#ØØÜ˜Óô		
ð ˜Š>Ø%1‰EØ˜!Š^Ø‰EØ˜!Š^Ø"‰Eà,ˆEØ×Ñœ g¨|ÐO¸eÐOÀSÐOÈ$ÒOÔPØ×ÑÜ˜ÐA EÐA¨;×+>Ñ+>Ó+@ÒAØð 	õ 	
r   c                óL  — g }t         j                  j                  || j                  d«      }t	        j
                  «       }|dk  r|j                  d«       	 |j                  |«       |j                  dd|j                  «       t        |d«      5 }|j                  |«       d d d «       t        dg|¢|j                  «       ‘­Ž }	| j                  |	|¬«       y # 1 sw Y   Œ9xY w# t        t        j                   f$ r!}
t"        j%                  d	||
«       Y d }
~
y d }
~
ww xY w)
NÚhgrcr   ú-qÚpathsÚdefaultÚwr   r   z/Could not switch Mercurial repository to %s: %s)ÚosÚpathÚjoinÚdirnameÚconfigparserÚRawConfigParserÚappendÚreadÚsetÚsecretÚopenÚwriter   r#   r"   ÚOSErrorÚNoSectionErrorr    Úwarning)r$   r%   r&   r'   r(   Úextra_flagsÚrepo_configÚconfigÚconfig_fileÚcmd_argsÚexcs              r   ÚswitchzMercurial.switch=   sô   € ð ˆÜ—g‘g—l‘l 4¨¯©°vÓ>ˆÜ×-Ñ-Ó/ˆà˜Š>Ø×Ñ˜tÔ$ð		1Ø�K‰K˜Ô$Ø�J‰J�w 	¨3¯:©:Ô6Ü�k 3Ô'¨;Ø—‘˜[Ô)÷ (ô
 $ HÐR¨{ÐR¸K×<OÑ<OÓ<QÒRˆHØ×Ñ˜X¨4ÐÕ0÷ (Ð'ûäœ×4Ñ4Ð5ò 	XÜ�N‰NÐLÈcÐSV×WÑWûð	Xús0   Á:C) ÂCÂ%C) ÃC&Ã"C) Ã)D#ÄDÄD#c                ó¾   — g }|dk  r|j                  d«       | j                  dg|¢|¬«       t        dg|¢|j                  «       ‘­Ž }| j                  ||¬«       y )Nr   r.   Úpullr   r   )r8   r"   r   r#   )r$   r%   r&   r'   r(   rA   rE   s          r   r   zMercurial.updateV   si   € ð ˆà˜Š>Ø×Ñ˜tÔ$à×Ñ˜&Ð/ ;Ð/°TÐÔ:Ü ÐN¨;ÐN¸×8KÑ8KÓ8MÒNˆØ×Ñ˜ tÐÕ,r   c                ó¤   — | j                  ddgdd|¬«      j                  «       }| j                  |«      rt        |«      }|j                  «       S )NÚ
showconfigzpaths.defaultFT©Úshow_stdoutÚstdout_onlyr   )r"   ÚstripÚ_is_local_repositoryr	   )ÚclsÚlocationr&   s      r   Úget_remote_urlzMercurial.get_remote_urlf   sX   € à�o‰oØ˜?Ð+ØØØð	 ó 
÷
 ‰%‹'ð 	ð ×#Ñ# CÔ(Ü˜cÓ"ˆCØ�y‰y‹{Ðr   c                óP   — | j                  ddgdd|¬«      j                  «       }|S )zW
        Return the repository-local changeset revision number, as an integer.
        Úparentsz--template={rev}FTrL   ©r"   rO   )rQ   rR   Úcurrent_revisions      r   Úget_revisionzMercurial.get_revisionr   s=   € ð
 Ÿ?™?ØÐ*Ð+ØØØð	 +ó 
÷
 ‰%‹'ð 	ð  Ðr   c                óP   — | j                  ddgdd|¬«      j                  «       }|S )zh
        Return the changeset identification hash, as a 40-character
        hexadecimal string
        rU   z--template={node}FTrL   rV   )rQ   rR   Úcurrent_rev_hashs      r   Úget_requirement_revisionz"Mercurial.get_requirement_revision   s=   € ð Ÿ?™?ØÐ+Ð,ØØØð	 +ó 
÷
 ‰%‹'ð 	ð  Ðr   c                 ó   — y)z&Always assume the versions don't matchFr   )rQ   r%   Únames      r   Úis_commit_id_equalzMercurial.is_commit_id_equal�   s   € ð r   c                ó  — | j                  dgdd|¬«      j                  «       }t        j                  j	                  |«      s=t        j                  j                  t        j                  j                  ||«      «      }t        ||«      S )z‘
        Return the path to Python project root, relative to the repo root.
        Return None if the project root is in the repo root.
        ÚrootFTrL   )r"   rO   r2   r3   ÚisabsÚabspathr4   r   )rQ   rR   Ú	repo_roots      r   Úget_subdirectoryzMercurial.get_subdirectory’   sl   € ð —O‘OØˆH %°T¸xð $ó 
ç
‰%‹'ð 	ô �w‰w�}‰}˜YÔ'ÜŸ™Ÿ™¬¯©¯©°X¸yÓ(IÓJˆIÜ7¸À)ÓLÐLr   c                ó  •— t         ‰| �  |«      }|r|S 	 | j                  dg|dddd¬«      }t        j                  j                  |j                  d«      «      S # t        $ r t        j                  d|«       Y y t        $ r Y y w xY w)Nr`   FTÚraise)r   rM   rN   Úon_returncodeÚlog_failed_cmdzIcould not determine if %s is under hg control because hg is not availablez
)ÚsuperÚget_repository_rootr"   r   r    Údebugr   r2   r3   ÚnormpathÚrstrip)rQ   rR   ÚlocÚrÚ	__class__s       €r   rj   zMercurial.get_repository_root    s›   ø€ ä‰gÑ)¨(Ó3ˆÙØˆJð	Ø—‘Ø�ØØ!Ø Ø%Ø$ð  ó ˆAô" �w‰w×Ñ §¡¨Ó 0Ó1Ð1øô ò 	Ü�L‰Lð.àôñ
 Ü ò 	Ùð	ús   –A ÁBÁ=BÂB)r   ÚstrÚreturnz	list[str])
r%   rq   r&   r   r'   r
   r(   Úintrr   ÚNone)r   )rR   rq   rr   rq   )r%   rq   r]   ú
str | Nonerr   Úbool)rR   rq   rr   ru   )Ú__name__Ú
__module__Ú__qualname__r]   r5   Ú	repo_nameÚschemesÚstaticmethodr   r+   rG   r   ÚclassmethodrS   rX   r[   r^   rd   rj   Ú__classcell__)rp   s   @r   r   r      sH  ø„ Ø€DØ€GØ€Ið€Gð ò ó ð ð
Øð
Ø(ð
Ø7Að
ØNQð
à	ó
ð: ð1àð1ð ð1ð  ð	1ð
 ð1ð 
ó1ð< ð-àð-ð ð-ð  ð	-ð
 ð-ð 
ó-ð  ò	ó ð	ð ò
 ó ð
 ð ò ó ð ð òó ðð òMó ðMð ô2ó ô2r   r   )Ú
__future__r   r6   Úloggingr2   Úpip._internal.exceptionsr   r   Úpip._internal.utils.miscr   r   Úpip._internal.utils.subprocessr   Úpip._internal.utils.urlsr	   Ú pip._internal.vcs.versioncontrolr
   r   r   r   Ú	getLoggerrw   r    r   Úregisterr   r   r   Ú<module>rˆ      sZ   ðÝ "ã Û Û 	ç Bß =Ý 7Ý 0÷ó ð 
ˆ×	Ñ	˜8Ó	$€ôb2�ô b2ðJ €‡�ˆYÕ r   