Ë
    ”U.j.  ã                  ó^  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
 d dlmZmZ d dlmZmZmZmZmZ  ej(                  e«      Z ej.                  d«      Z ej.                  d«      Z ej.                  d«      Z ej.                  d	«      Z G d
„ de«      Z ej:                  e«       y)é    )Ú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                  óX  ‡ — e Zd ZdZdZdZdZedd„«       Ze	dd„«       Z
edd„«       Ze	 	 	 	 	 	 dˆ fd„«       Zedˆ fd	„«       Ze	dd
„«       Zedd„«       Zedd„«       Zedd„«       Zddˆ fd„Zdd„Zdd„Zd d„Z	 	 	 	 	 	 	 	 	 	 d!d„Z	 d"	 	 	 	 	 	 	 	 	 d!d„Z	 d"	 	 	 	 	 	 	 	 	 d!d„Zˆ xZS )#Ú
SubversionÚsvnz.svnÚcheckout)zsvn+sshzsvn+httpz	svn+httpszsvn+svnzsvn+filec                 ó   — y)NT© )ÚclsÚ
remote_urls     ú^C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pip/_internal/vcs/subversion.pyÚshould_add_vcs_url_prefixz$Subversion.should_add_vcs_url_prefix%   s   € àó    c                ó
   — d| gS )Nz-rr   )Úrevs    r   Úget_base_rev_argszSubversion.get_base_rev_args)   s   € à�cˆ{Ðr   c                óÜ  — d}t        j                  |«      D ]È  \  }}}| j                  |vrg |dd Œ|j                  | j                  «       t         j                  j                  || j                  d«      }t         j                  j                  |«      sŒ�| j                  |«      \  }}||k(  r
|€J ‚|dz   }n|r|j                  |«      sg |dd Œ½t        ||«      }ŒÊ t        |«      S )zR
        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_revisionzSubversion.get_revision-   sÝ   € ð ˆäŸW™W XÖ.‰MˆD�$˜Ø�{‰{ $Ñ&Ø�‘Q�ØØ�K‰K˜Ÿ™Ô$ÜŸ™Ÿ™ d¨C¯K©K¸ÓCˆJÜ—7‘7—>‘> *Ô-àà"×3Ñ3°DÓ9ÑˆF�Hà�xÒØÐ)Ð)Ð)Ø ‘|‘Ù 6×#4Ñ#4°TÔ#:Ø�‘Q�ØÜ˜8 XÓ.‰Hð% /ô& �8‹}Ðr   c                óD   •— |dk(  rt         ‰| �  ||«      S t        |«      S )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   r8   zSubversion.get_netloc_and_authJ   s+   ø€ ð �UŠ?ô ‘7Ñ.¨v°vÓ>Ð>ä% fÓ-Ð-r   c                ó`   •— t         ‰| �  |«      \  }}}|j                  d«      rd|z   }|||fS )Nzssh://zsvn+)r7   Úget_url_rev_and_authr)   )r   Úurlr   Ú	user_passr;   s       €r   r=   zSubversion.get_url_rev_and_authY   s=   ø€ ô $™gÑ:¸3Ó?ÑˆˆS�)Ø�>‰>˜(Ô#Ø˜3‘,ˆCØ�C˜Ð"Ð"r   c                ó.   — g }| r|d| gz  }|r|d|gz  }|S )Nz
--usernamez
--passwordr   )ÚusernameÚpasswordÚ
extra_argss      r   Úmake_rev_argszSubversion.make_rev_argsa   s1   € à"$ˆ
ÙØ˜<¨Ð2Ñ2ˆJÙØ˜<¨Ð2Ñ2ˆJàÐr   c                óô   — |}t        |«      sN|}t        j                  j                  |«      }||k(  rt        j                  d|«       t        ‚t        |«      sŒN| j                  |«      \  }}|€t        ‚|S )NzMCould not find Python project for directory %s (tried all parent directories))r   r!   r%   r#   ÚloggerÚwarningr   r(   )r   r,   Úorig_locationÚlast_locationr>   Ú_revs         r   Úget_remote_urlzSubversion.get_remote_urlk   s~   € ð !ˆÜ$ XÔ.Ø$ˆMÜ—w‘w—‘ xÓ0ˆHØ˜=Ò(ô —‘ð*à!ôô
 *Ð)ô % XÕ.ð ×(Ñ(¨Ó2‰	ˆˆTØˆ;Ü%Ð%àˆ
r   c                óŽ  — ddl m} t        j                  j	                  || j
                  d«      }t        j                  j                  |«      r%t        |«      5 }|j                  «       }d d d «       nd}d }j                  d«      rwt        t        t        j                  |j                  d«      «      «      }|d   d= |d   d   }|D �cg c]%  }t        |«      dkD  sŒ|d   sŒt!        |d   «      ‘Œ' c}dgz   }	�n|j                  d	«      rvt"        j%                  |«      }
|
st'        d
|›�«      ‚|
j)                  d«      }t*        j-                  |«      D �cg c]  }t!        |j)                  d«      «      ‘Œ c}dgz   }	n|	 | j/                  dd|gdd¬«      }t0        j%                  |«      }
|
€J ‚|
j)                  d«      }t2        j-                  |«      D �cg c]  }t!        |j)                  d«      «      ‘Œ }	}|	rt5        |	«      }||fS d}||fS # 1 sw Y   �Œ®xY wc c}w c c}w c c}w # |$ r d g }	}Y Œ>w xY w)Nr   )ÚInstallationErrorr   Ú )Ú8Ú9Ú10z

é   é	   z<?xmlzBadly formatted data: é   Úinfoz--xmlFT©Úshow_stdoutÚstdout_only)Úpip._internal.exceptionsrM   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,   rM   Úentries_pathÚfÚdatar>   r   ÚdÚrevsÚmatchÚmÚxmlr   s                 r   r(   zSubversion._get_svn_url_revƒ   s  € å>ä—w‘w—|‘| H¨c¯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³*ÀÀ1Ã”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ð �Cˆxˆð ˆCà�Cˆxˆ÷U $Ñ#üò Gùò Iùò" UøØ$ò %Ø  "�T’ð%úsI   ÁHÃH)Ã#H)Ã)H)Å !H.Æ
AH8 Ç"!H3ÈH8 ÈH&È3H8 È8	IÉIc                 ó   — y)z&Always assume the versions don't matchFr   )r   ÚdestÚnames      r   Úis_commit_id_equalzSubversion.is_commit_id_equalµ   s   € ð r   c                óV   •— |€
t        «       }|| _        d | _        t        ‰| �  «        y ©N)r   Úuse_interactiveÚ_vcs_versionr7   Ú__init__)Úselfry   r;   s     €r   r{   zSubversion.__init__º   s.   ø€ ØÐ"Ü4Ó6ˆOØ.ˆÔð 59ˆÔä‰ÑÕr   c                ó.  — d}| j                  dgdd¬«      }|j                  |«      sy|t        |«      d j                  «       d   }|j	                  d	«      d   j                  d
«      }	 t        t        t        |«      «      }|S # t        $ r Y yw xY w)a  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	--versionFTrV   r   Nr   Ú-Ú.)	rh   r)   r`   r_   Ú	partitionÚtupler]   ra   rd   )r|   Úversion_prefixÚversionÚversion_listÚparsed_versions        r   Úcall_vcs_versionzSubversion.call_vcs_versionÈ   s¦   € ð )ˆØ×"Ñ" K =¸eÐQUÐ"ÓVˆØ×!Ñ! .Ô1Øàœ#˜nÓ-Ð/Ð0×6Ñ6Ó8¸Ñ;ˆØ×(Ñ(¨Ó-¨aÑ0×6Ñ6°sÓ;ˆð	Ü"¤3¤s¨LÓ#9Ó:ˆNð Ðøô ò 	Ùð	ús   Á-B Â	BÂBc                ód   — | j                   �| j                   S | j                  «       }|| _         |S )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.
        )rz   r†   )r|   Úvcs_versions     r   Úget_vcs_versionzSubversion.get_vcs_versionä   s:   € ð ×ÑÐ(ð ×$Ñ$Ð$à×+Ñ+Ó-ˆØ'ˆÔØÐr   c                óT   — | j                   sdgS | j                  «       }|dk\  rdgS g S )aC  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)rT   é   z--force-interactive)ry   r‰   )r|   Úsvn_versions     r   Úget_remote_call_optionsz"Subversion.get_remote_call_optionsø   s>   € ð ×#Ò#ð (Ð(Ð(à×*Ñ*Ó,ˆð ˜&Ò Ø)Ð*Ð*àˆ	r   c                óþ   — |j                  «       }t        j                  d||t        |«      «       |dk  rdg}ng }t	        dg|¢| j                  «       ‘|j                  «       ‘|‘|‘­Ž }| j                  |«       y )NzChecking out %s%s to %sr   z--quietr   )Ú
to_displayrF   rU   r   r
   r�   Úto_argsrh   )r|   rt   r>   Úrev_optionsÚ	verbosityÚrev_displayÚflagsÚcmd_argss           r   Ú	fetch_newzSubversion.fetch_new  s£   € ð "×,Ñ,Ó.ˆÜ�‰Ø%ØØÜ˜Óô		
ð ˜Š>Ø�K‰EàˆEÜØð
àð
ð ×(Ñ(Ó*ð
ð ×ÑÓ!ð	
ð
 ð
ð ò
ˆð 	×Ñ˜Õ"r   c                ó|   — t        d| j                  «       |j                  «       ||«      }| j                  |«       y )NÚswitch©r
   r�   r�   rh   ©r|   rt   r>   r‘   r’   r•   s         r   r˜   zSubversion.switch/  s?   € ô  ØØ×(Ñ(Ó*Ø×ÑÓ!ØØó
ˆð 	×Ñ˜Õ"r   c                óz   — t        d| j                  «       |j                  «       |«      }| j                  |«       y )NÚupdater™   rš   s         r   rœ   zSubversion.update?  s<   € ô  ØØ×(Ñ(Ó*Ø×ÑÓ!Øó	
ˆð 	×Ñ˜Õ"r   )r   r+   ÚreturnÚbool)r   r+   r�   z	list[str])r,   r+   r�   r+   )r9   r+   r:   r+   r�   z)tuple[str, tuple[str | None, str | None]])r>   r+   r�   z tuple[str, str | None, AuthInfo])rA   ú
str | NonerB   zHiddenText | Noner�   r	   )r,   r+   r�   ztuple[str | None, int])rt   r+   ru   rŸ   r�   rž   rx   )ry   zbool | Noner�   ÚNone)r�   ztuple[int, ...])r�   r	   )
rt   r+   r>   r   r‘   r   r’   ra   r�   r    )r   )Ú__name__Ú
__module__Ú__qualname__ru   r#   Ú	repo_nameÚschemesÚclassmethodr   Ústaticmethodr   r4   r8   r=   rD   rK   r(   rv   r{   r†   r‰   r�   r–   r˜   rœ   Ú__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¡   rF   Úcompilerb   rf   rj   ri   r   Úregisterr   r   r   Ú<module>r²      s£   ðÝ "ã Û 	Û 	÷õ ÷ E÷õ ð 
ˆ×	Ñ	˜8Ó	$€à�"—*‘*˜_Ó-€Øˆb�j‰jÐ1Ó2€Ø!�r—z‘zÐ"8Ó9Ð Ø!�r—z‘zÐ"4Ó5Ð ôm#�ô m#ð`	 €‡�ˆZÕ r   