ó
    T=Œj.  ã                  ó^  • S SK Jr  S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
  S SKJrJr  S SKJrJrJrJrJr  \R(                  " \5      r\R.                  " S5      r\R.                  " S5      r\R.                  " S5      r\R.                  " S	5      r " S
 S\5      r\R:                  " \5        g)é    )ÚannotationsN)Ú
HiddenTextÚdisplay_pathÚis_console_interactiveÚis_installable_dirÚsplit_auth_from_netloc)ÚCommandArgsÚmake_command)ÚAuthInfoÚRemoteNotFoundErrorÚ
RevOptionsÚVersionControlÚvcszurl="([^"]+)"zcommitted-rev="(\d+)"z\s*revision="(\d+)"z<url>(.*)</url>c                  óŒ  ^ • \ rS rSrSrSrSrSr\SS j5       r	\
SS j5       r\SS j5       r\      SU 4S	 jj5       r\SU 4S
 jj5       r\
SS j5       r\SS j5       r\SS j5       r\SS j5       rSS U 4S jjjrS!S jrS!S jrS"S jr          S#S jr S$         S#S jjr S$         S#S jjrSrU =r$ )%Ú
Subversioné   Úsvnz.svnÚcheckout)zsvn+sshzsvn+httpz	svn+httpszsvn+svnzsvn+filec                ó   • g)NT© )ÚclsÚ
remote_urls     Ú`/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/vcs/subversion.pyÚshould_add_vcs_url_prefixÚ$Subversion.should_add_vcs_url_prefix%   s   € àó    c                ó
   • SU /$ )Nz-rr   )Úrevs    r   Úget_base_rev_argsÚSubversion.get_base_rev_args)   s   € à�cˆ{Ðr   c                ó  • Sn[         R                  " U5       HÚ  u  p4nU R                  U;  a  / USS& M  UR                  U R                  5        [         R                  R                  X0R                  S5      n[         R                  R                  U5      (       d  Mˆ  U R                  U5      u  pxX1:X  a  Uc   eUS-   nO$U(       a  UR                  U5      (       d  / USS& MÏ  [        X(5      nMÜ     [        U5      $ )zB
Return the maximum revision for all files under a given location
r   NÚentriesÚ/)ÚosÚwalkÚdirnameÚremoveÚpathÚjoinÚexistsÚ_get_svn_url_revÚ
startswithÚmaxÚstr)	r   ÚlocationÚrevisionÚbaseÚdirsÚ_Ú
entries_fnÚdirurlÚlocalrevs	            r   Úget_revisionÚSubversion.get_revision-   sÙ   € ð ˆäŸWšW XÖ.‰MˆD˜Ø�{‰{ $Ó&Ø�‘Q�ÙØ�K‰K˜Ÿ™Ô$ÜŸ™Ÿ™ d¯K©K¸ÓCˆJÜ—7‘7—>‘> *×-Ñ-áà"×3Ñ3°DÓ9ÑˆFàÓØÑ)Ð)Ð)Ø ‘|‘Þ 6×#4Ñ#4°T×#:Ñ#:Ø�‘Q�ÙÜ˜8Ó.ŠHñ% /ô& �8‹}Ðr   c                óD   >• US:X  a  [         TU ]  X5      $ [        U5      $ )z�
This override allows the auth information to be passed to svn via the
--username and --password options instead of via the URL.
Ússh)ÚsuperÚget_netloc_and_authr   )r   ÚnetlocÚschemeÚ	__class__s      €r   r<   ÚSubversion.get_netloc_and_authJ   s)   ø€ ð �U‹?ô ‘7Ñ.¨vÓ>Ð>ä% fÓ-Ð-r   c                óf   >• [         TU ]  U5      u  pnUR                  S5      (       a  SU-   nXU4$ )Nzssh://zsvn+)r;   Úget_url_rev_and_authr,   )r   Úurlr   Ú	user_passr?   s       €r   rB   ÚSubversion.get_url_rev_and_authY   s<   ø€ ô $™gÑ:¸3Ó?Ñˆ�)Ø�>‰>˜(×#Ñ#Ø˜3‘,ˆCØ˜Ð"Ð"r   c                óB   • / nU (       a  USU /-  nU(       a  USU/-  nU$ )Nz
--usernamez
--passwordr   )ÚusernameÚpasswordÚ
extra_argss      r   Úmake_rev_argsÚSubversion.make_rev_argsa   s1   € à"$ˆ
ÞØ˜<¨Ð2Ñ2ˆJÞØ˜<¨Ð2Ñ2ˆJàÐr   c                ó
  • Un[        U5      (       dT  Un[        R                  R                  U5      nX:X  a  [        R                  SU5        [        e[        U5      (       d  MT  U R                  U5      u  pEUc  [        eU$ )NzMCould not find Python project for directory %s (tried all parent directories))r   r$   r(   r&   ÚloggerÚwarningr   r+   )r   r/   Úorig_locationÚlast_locationrC   Ú_revs         r   Úget_remote_urlÚSubversion.get_remote_urlk   s€   € ð !ˆÜ$ X×.Ñ.Ø$ˆMÜ—w‘w—‘ xÓ0ˆHØÓ(ô —‘ð*à!ôô
 *Ð)ô % X×.Ó.ð ×(Ñ(¨Ó2‰	ˆØ‰;Ü%Ð%àˆ
r   c                óä  • SSK Jn  [        R                  R	                  XR
                  S5      n[        R                  R                  U5      (       a%  [        U5       nUR                  5       nS S S 5        OSnS nWR                  S5      (       a‚  [        [        [        R                  UR                  S5      5      5      nUS   S	 US   S   nU Vs/ s H.  n[        U5      S:”  d  M  US   (       d  M   [!        US   5      PM0     snS/-   n	GOUR                  S	5      (       a  ["        R%                  U5      n
U
(       d  ['        S
U< 35      eU
R)                  S5      n[*        R-                  U5       Vs/ s H  n[!        UR)                  S5      5      PM     snS/-   n	O} U R/                  SSU/SSS9n[0        R%                  U5      n
U
c   eU
R)                  S5      n[2        R-                  U5       Vs/ s H  n[!        UR)                  S5      5      PM     n	nU	(       a  [5        U	5      nXm4$ SnXm4$ ! , (       d  f       GNÕ= fs  snf s  snf s  snf ! U a    S / p– NFf = f)Nr   )ÚInstallationErrorr"   Ú )Ú8Ú9Ú10z

é   é	   z<?xmlzBadly formatted data: é   Úinfoz--xmlFT©Úshow_stdoutÚstdout_only)Úpip._internal.exceptionsrU   r$   r(   r)   r&   r*   ÚopenÚreadr,   ÚlistÚmapr.   Ú
splitlinesÚsplitÚlenÚintÚ_svn_xml_url_reÚsearchÚ
ValueErrorÚgroupÚ_svn_rev_reÚfinditerÚrun_commandÚ_svn_info_xml_url_reÚ_svn_info_xml_rev_rer-   )r   r/   rU   Úentries_pathÚfÚdatarC   r"   ÚdÚrevsÚmatchÚmÚxmlr   s                 r   r+   ÚSubversion._get_svn_url_revƒ   s$  € å>ä—w‘w—|‘| H¯k©k¸9ÓEˆÜ�7‰7�>‰>˜,×'Ñ'Ü�lÔ# qØ—v‘v“x�÷ $Ð#ð ˆDàˆØ�?‰?Ð+×,Ñ,Üœ3œsŸ~™~¨t¯z©z¸*Ó/EÓFÓGˆGØ˜‘
˜1�Ø˜!‘*˜Q‘-ˆCÙ'.ÓF¢w !´#°a³&¸1±*“IÀÀ1Å“I”C˜˜!™–I¡wÑFÈ!ÈÑLŠDØ�_‰_˜W×%Ñ%Ü#×*Ñ*¨4Ó0ˆEÞÜ Ð#9¸$¹Ð!BÓCÐCØ—+‘+˜a“.ˆCÜ-8×-AÑ-AÀ$Ô-GÓHÒ-G¨”C˜Ÿ™ ›
–OÑ-GÑHÈAÈ3ÑN‰Dð%ð —o‘oØ˜W hÐ/Ø %Ø $ð &ð �ô
 -×3Ñ3°CÓ8�ØÑ(Ð(Ð(Ø—k‘k !“n�Ü1E×1NÑ1NÈsÔ1SÓTÒ1S¨Aœ˜AŸG™G A›JžÑ1S�ÐTö Ü�d“)ˆCð ˆxˆð ˆCàˆxˆ÷U $Ö#üò Gùò Iùò" UøØ$ó %Ø  "’Tð%úsI   Á IÃIÃ/IÃ;IÅ?$IÆ,AI# È$IÈ&I# É
IÉI# É#	I/É.I/c                ó   • g)z&Always assume the versions don't matchFr   )r   ÚdestÚnames      r   Úis_commit_id_equalÚSubversion.is_commit_id_equalµ   s   € ð r   c                óV   >• Uc
  [        5       nXl        S U l        [        TU ]  5         g ©N)r   Úuse_interactiveÚ_vcs_versionr;   Ú__init__)Úselfrƒ   r?   s     €r   r…   ÚSubversion.__init__º   s,   ø€ ØÑ"Ü4Ó6ˆOØ.Ôð 59ˆÔä‰ÑÕr   c                ó4  • SnU R                  S/SSS9nUR                  U5      (       d  gU[        U5      S R                  5       S   nUR	                  S	5      S   R                  S
5      n [        [        [        U5      5      nU$ ! [         a     gf = f)züQuery the version of the currently installed Subversion client.

:return: A tuple containing the parts of the version information or
    ``()`` if the version returned from ``svn`` could not be parsed.
:raises: BadCommand: If ``svn`` is not installed.
zsvn, version z	--versionFTr^   r   Nr   Ú-Ú.)	rp   r,   rh   rg   Ú	partitionÚtuplere   ri   rl   )r†   Úversion_prefixÚversionÚversion_listÚparsed_versions        r   Úcall_vcs_versionÚSubversion.call_vcs_versionÈ   s©   € ð )ˆØ×"Ñ" K =¸eÐQUÐ"ÐVˆØ×!Ñ! .×1Ñ1Øàœ#˜nÓ-Ð/Ð0×6Ñ6Ó8¸Ñ;ˆØ×(Ñ(¨Ó-¨aÑ0×6Ñ6°sÓ;ˆð	Ü"¤3¤s¨LÓ#9Ó:ˆNð Ðøô ó 	Ùð	ús   Á/B
 Â

BÂBc                ód   • U R                   b  U R                   $ U R                  5       nXl         U$ )a]  Return the version of the currently installed Subversion client.

If the version of the Subversion client has already been queried,
a cached value will be used.

:return: A tuple containing the parts of the version information or
    ``()`` if the version returned from ``svn`` could not be parsed.
:raises: BadCommand: If ``svn`` is not installed.
)r„   r‘   )r†   Úvcs_versions     r   Úget_vcs_versionÚSubversion.get_vcs_versionä   s8   € ð ×ÑÑ(ð ×$Ñ$Ð$à×+Ñ+Ó-ˆØ'ÔØÐr   c                ó`   • U R                   (       d  S/$ U R                  5       nUS:¼  a  S/$ / $ )a  Return options to be used on calls to Subversion that contact the server.

These options are applicable for the following ``svn`` subcommands used
in this class.

    - checkout
    - switch
    - update

:return: A list of command line arguments to pass to ``svn``.
z--non-interactive)r\   é   z--force-interactive)rƒ   r•   )r†   Úsvn_versions     r   Úget_remote_call_optionsÚ"Subversion.get_remote_call_optionsø   s>   € ð ×#×#ð (Ð(Ð(à×*Ñ*Ó,ˆð ˜&Ó Ø)Ð*Ð*àˆ	r   c                ó   • UR                  5       n[        R                  SUU[        U5      5        US::  a  S/nO/ n[	        S/UQU R                  5       PUR                  5       PUPUP76 nU R                  U5        g )NzChecking out %s%s to %sr   z--quietr   )Ú
to_displayrM   r]   r   r
   rš   Úto_argsrp   )r†   r}   rC   Úrev_optionsÚ	verbosityÚrev_displayÚflagsÚcmd_argss           r   Ú	fetch_newÚSubversion.fetch_new  s£   € ð "×,Ñ,Ó.ˆÜ�‰Ø%ØØÜ˜Óô		
ð ˜‹>Ø�K‰EàˆEÜØð
àð
ð ×(Ñ(Ó*ð
ð ×ÑÓ!ð	
ð
 ð
ð ò
ˆð 	×Ñ˜Õ"r   c                ó|   • [        SU R                  5       UR                  5       UU5      nU R                  U5        g )NÚswitch©r
   rš   rž   rp   ©r†   r}   rC   rŸ   r    r£   s         r   r§   ÚSubversion.switch/  s?   € ô  ØØ×(Ñ(Ó*Ø×ÑÓ!ØØó
ˆð 	×Ñ˜Õ"r   c                óz   • [        SU R                  5       UR                  5       U5      nU R                  U5        g )NÚupdater¨   r©   s         r   r¬   ÚSubversion.update?  s<   € ô  ØØ×(Ñ(Ó*Ø×ÑÓ!Øó	
ˆð 	×Ñ˜Õ"r   )r„   rƒ   )r   r.   ÚreturnÚbool)r   r.   r®   z	list[str])r/   r.   r®   r.   )r=   r.   r>   r.   r®   z)tuple[str, tuple[str | None, str | None]])rC   r.   r®   z tuple[str, str | None, AuthInfo])rG   ú
str | NonerH   zHiddenText | Noner®   r	   )r/   r.   r®   ztuple[str | None, int])r}   r.   r~   r°   r®   r¯   r‚   )rƒ   zbool | Noner®   ÚNone)r®   ztuple[int, ...])r®   r	   )
r}   r.   rC   r   rŸ   r   r    ri   r®   r±   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r~   r&   Ú	repo_nameÚschemesÚclassmethodr   Ústaticmethodr   r7   r<   rB   rJ   rR   r+   r   r…   r‘   r•   rš   r¤   r§   r¬   Ú__static_attributes__Ú__classcell__)r?   s   @r   r   r      s¡  ø† Ø€DØ€GØ€IØI€Gàóó ðð óó ðð óó ðð8 ð.Øð.Ø"%ð.à	2ö.ó ð.ð ö#ó ð#ð óó ðð óó ðð. ó/ó ð/ðb óó ð÷ñ ôô8ô(ð>#Øð#Ø(ð#Ø7Að#ØNQð#à	ô#ð: ð#àð#ð ð#ð  ð	#ð
 ð#ð 
õ#ð* ð#àð#ð ð#ð  ð	#ð
 ð#ð 
÷#ó #r   r   )Ú
__future__r   Úloggingr$   ÚreÚpip._internal.utils.miscr   r   r   r   r   Úpip._internal.utils.subprocessr	   r
   Ú pip._internal.vcs.versioncontrolr   r   r   r   r   Ú	getLoggerr²   rM   Úcompilerj   rn   rr   rq   r   Úregisterr   r   r   Ú<module>rÅ      s—   ðÝ "ã Û 	Û 	÷õ ÷ E÷õ ð 
×	Ò	˜8Ó	$€à—*’*˜_Ó-€Ø�jŠjÐ1Ó2€Ø—z’zÐ"8Ó9Ð Ø—z’zÐ"4Ó5Ð ôm#�ô m#ð`	 ‡‚ˆZÕ r   