§
    u”j.  ã                  óN  — 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¦  «         dS )é    )Ú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                  óJ  ‡ — e Zd ZdZdZdZdZed4d	„¦   «         Ze	d5d„¦   «         Z
ed6d„¦   «         Zed7ˆ fd„¦   «         Zed8ˆ fd„¦   «         Ze	d9d„¦   «         Zed6d„¦   «         Zed:d„¦   «         Zed;d!„¦   «         Zd<d=ˆ fd&„Zd>d(„Zd>d)„Zd?d*„Zd@d0„Z	 dAd@d2„Z	 dAd@d3„Zˆ xZS )BÚ
SubversionÚsvnz.svnÚcheckout)zsvn+sshzsvn+httpz	svn+httpszsvn+svnzsvn+fileÚ
remote_urlÚstrÚreturnÚboolc                ó   — dS )NT© )Úclsr   s     úk/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pip/_internal/vcs/subversion.pyÚshould_add_vcs_url_prefixz$Subversion.should_add_vcs_url_prefix%   s   € àˆtó    Úrevú	list[str]c                ó
   — d| gS )Nz-rr   )r   s    r   Úget_base_rev_argszSubversion.get_base_rev_args)   s   € à�cˆ{Ðr   Úlocationc                óê  — d}t          j        |¦  «        D ]Î\  }}}| j        |vrg |dd…<   Œ|                     | j        ¦  «         t           j                             || j        d¦  «        }t           j                             |¦  «        sŒw|                      |¦  «        \  }}||k    r
|€J ‚|dz   }n|r|                     |¦  «        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Úmaxr   )	r   r"   ÚrevisionÚbaseÚdirsÚ_Ú
entries_fnÚdirurlÚlocalrevs	            r   Úget_revisionzSubversion.get_revision-   s  € ð ˆåœW XÑ.Ô.ð 	/ð 	/‰MˆD�$˜ØŒ{ $Ð&Ð&Ø��Q�Q�Q‘ØØ�KŠK˜œÑ$Ô$Ð$ÝœŸš d¨C¬K¸ÑCÔCˆJÝ”7—>’> *Ñ-Ô-ð àà"×3Ò3°DÑ9Ô9ÑˆF�Hà�xÒÐØÐ)Ð)Ð)Ø ‘|��Øð  6×#4Ò#4°TÑ#:Ô#:ð Ø��Q�Q�Q‘ØÝ˜8 XÑ.Ô.ˆHˆHÝ�8‰}Œ}Ðr   ÚnetlocÚschemeú)tuple[str, tuple[str | None, str | None]]c                ór   •— |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   r8   r9   Ú	__class__s      €r   r>   zSubversion.get_netloc_and_authJ   s8   ø€ ð �UŠ?ˆ?õ ‘7”7×.Ò.¨v°vÑ>Ô>Ð>å% fÑ-Ô-Ð-r   Úurlú tuple[str, str | None, AuthInfo]c                óŒ   •— t          ¦   «                              |¦  «        \  }}}|                     d¦  «        rd|z   }|||fS )Nzssh://zsvn+)r=   Úget_url_rev_and_authr.   )r   r@   r   Ú	user_passr?   s       €r   rC   zSubversion.get_url_rev_and_authY   sM   ø€ õ $™gœg×:Ò:¸3Ñ?Ô?ÑˆˆS�)Ø�>Š>˜(Ñ#Ô#ð 	Ø˜3‘,ˆCØ�C˜Ð"Ð"r   Úusernameú
str | NoneÚpasswordúHiddenText | Noner	   c                ó.   — g }| r|d| gz  }|r|d|gz  }|S )Nz
--usernamez
--passwordr   )rE   rG   Ú
extra_argss      r   Úmake_rev_argszSubversion.make_rev_argsa   s;   € à"$ˆ
Øð 	3Ø˜<¨Ð2Ñ2ˆJØð 	3Ø˜<¨Ð2Ñ2ˆJàÐr   c                ó  — |}t          |¦  «        sX|}t          j                             |¦  «        }||k    r"t                               d|¦  «         t          ‚t          |¦  «        ¯X|                      |¦  «        \  }}|€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—’ xÑ0Ô0ˆHØ˜=Ò(Ð(õ —’ð*à!ñô ð õ
 *Ð)õ % XÑ.Ô.ð 	*ð ×(Ò(¨Ñ2Ô2‰	ˆˆTØˆ;Ý%Ð%àˆ
r   útuple[str | None, int]c                ó@  — ddl m} t          j                             || j        d¦  «        }t          j                             |¦  «        r<t          |¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   nd}d }| 	                    d¦  «        rct          t          t          j        |                     d¦  «        ¦  «        ¦  «        }|d         d= |d         d         }d„ |D ¦   «         dgz   }�n| 	                    d	¦  «        rlt                               |¦  «        }	|	st#          d
|›�¦  «        ‚|	                     d¦  «        }d„ t&                               |¦  «        D ¦   «         dgz   }nƒ	 |                      dd|gdd¬¦  «        }
t,                               |
¦  «        }	|	€J ‚|	                     d¦  «        }d„ t.                               |
¦  «        D ¦   «         }n# |$ r d g }}Y nw xY w|rt1          |¦  «        }nd}||fS )Nr   )ÚInstallationErrorr$   Ú )Ú8Ú9Ú10z

é   c                ón   — g | ]2}t          |¦  «        d k    ¯|d          ¯t          |d          ¦  «        ‘Œ3S )é	   )ÚlenÚint)Ú.0Úds     r   ú
<listcomp>z/Subversion._get_svn_url_rev.<locals>.<listcomp>“   s5   € ÐFÐFÐF !µ#°a±&´&¸1²*°*ÀÀ1Ä°*•C˜˜!œ‘I”I°*°*°*r   z<?xmlzBadly formatted data: é   c                óR   — g | ]$}t          |                     d ¦  «        ¦  «        ‘Œ%S ©rb   ©r^   Úgroup©r_   Úms     r   ra   z/Subversion._get_svn_url_rev.<locals>.<listcomp>™   s(   € ÐHÐHÐH¨•C˜Ÿš ™
œ
‘O”OÐHÐHÐHr   Úinfoz--xmlFT©Úshow_stdoutÚstdout_onlyc                óR   — g | ]$}t          |                     d ¦  «        ¦  «        ‘Œ%S rd   re   rg   s     r   ra   z/Subversion._get_svn_url_rev.<locals>.<listcomp>ª   s(   € ÐTÐTÐT¨A�˜AŸGšG A™JœJ™œÐTÐTÐTr   )Úpip._internal.exceptionsrU   r&   r*   r+   r(   r,   ÚopenÚreadr.   ÚlistÚmapr   Ú
splitlinesÚsplitÚ_svn_xml_url_reÚsearchÚ
ValueErrorrf   Ú_svn_rev_reÚfinditerÚrun_commandÚ_svn_info_xml_url_reÚ_svn_info_xml_rev_rer/   )r   r"   rU   Úentries_pathÚfÚdatar@   r$   ÚrevsÚmatchÚxmlr   s               r   r-   zSubversion._get_svn_url_revƒ   s{  € à>Ð>Ð>Ð>Ð>Ð>å”w—|’| H¨c¬k¸9ÑEÔEˆÝŒ7�>Š>˜,Ñ'Ô'ð 	Ý�lÑ#Ô#ð   qØ—v’v‘x”x�ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  øð ˆDàˆØ�?Š?Ð+Ñ,Ô,ð 	%Ý�3�sœ~¨t¯zªz¸*Ñ/EÔ/EÑFÔFÑGÔGˆGØ˜”
˜1�Ø˜!”*˜Q”-ˆCØFÐF wÐFÑFÔFÈ!ÈÑLˆD‰DØ�_Š_˜WÑ%Ô%ð 	%Ý#×*Ò*¨4Ñ0Ô0ˆEØð DÝ Ð!B¸$Ð!BÐ!BÑCÔCÐCØ—+’+˜a‘.”.ˆCØHÐH­[×-AÒ-AÀ$Ñ-GÔ-GÐHÑHÔHÈAÈ3ÑNˆDˆDð%ð —o’oØ˜W hÐ/Ø %Ø $ð &ñ ô �õ
 -×3Ò3°CÑ8Ô8�ØÐ(Ð(Ð(Ø—k’k !‘n”n�ØTÐTÕ1E×1NÒ1NÈsÑ1SÔ1SÐTÑTÔT��øØ$ð %ð %ð %Ø  "�T���ð%øøøð ð 	Ý�d‘)”)ˆCˆCàˆCà�Cˆxˆs%   ÁA<Á<B ÂB ÆA2G9 Ç9	HÈHÚdestÚnamec                ó   — dS )z&Always assume the versions don't matchFr   )r   rƒ   r„   s      r   Úis_commit_id_equalzSubversion.is_commit_id_equalµ   s	   € ð ˆur   NÚuse_interactiveúbool | NoneÚNonec                ó„   •— |€t          ¦   «         }|| _        d | _        t          ¦   «                              ¦   «          d S ©N)r   r‡   Ú_vcs_versionr=   Ú__init__)Úselfr‡   r?   s     €r   r�   zSubversion.__init__º   sB   ø€ ØÐ"Ý4Ñ6Ô6ˆOØ.ˆÔð 59ˆÔå‰Œ×ÒÑÔÐÐÐr   útuple[int, ...]c                óŽ  — d}|                       dgdd¬¦  «        }|                     |¦  «        sdS |t          |¦  «        d…                              ¦   «         d         }|                     d	¦  «        d                              d
¦  «        }	 t          t          t          |¦  «        ¦  «        }n# t          $ r Y dS w xY w|S )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	--versionFTrj   r   Nr   ú-ú.)	rz   r.   r]   rt   Ú	partitionÚtuplerr   r^   rw   )rŽ   Úversion_prefixÚversionÚversion_listÚparsed_versions        r   Úcall_vcs_versionzSubversion.call_vcs_versionÈ   sØ   € ð )ˆØ×"Ò" K =¸eÐQUÐ"ÑVÔVˆØ×!Ò! .Ñ1Ô1ð 	Ø�2à�#˜nÑ-Ô-Ð/Ð/Ô0×6Ò6Ñ8Ô8¸Ô;ˆØ×(Ò(¨Ñ-Ô-¨aÔ0×6Ò6°sÑ;Ô;ˆð	Ý"¥3¥s¨LÑ#9Ô#9Ñ:Ô:ˆNˆNøÝð 	ð 	ð 	Ø�2�2ð	øøøð Ðs   Â"B4 Â4
CÃCc                óX   — | j         �| j         S |                      ¦   «         }|| _         |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.
        )rŒ   r™   )rŽ   Úvcs_versions     r   Úget_vcs_versionzSubversion.get_vcs_versionä   s7   € ð ÔÐ(ð Ô$Ð$à×+Ò+Ñ-Ô-ˆØ'ˆÔØÐr   c                óT   — | j         sdgS |                      ¦   «         }|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)rb   é   z--force-interactive)r‡   rœ   )rŽ   Úsvn_versions     r   Úget_remote_call_optionsz"Subversion.get_remote_call_optionsø   sF   € ð Ô#ð 	)ð (Ð(Ð(à×*Ò*Ñ,Ô,ˆð ˜&Ò Ð Ø)Ð*Ð*àˆ	r   r   Úrev_optionsr   Ú	verbosityr^   c                ó6  — |                      ¦   «         }t                               d||t          |¦  «        ¦  «         |dk    rdg}ng }t	          dg|¢|                      ¦   «         ‘|                     ¦   «         ‘|‘|‘R Ž }|                      |¦  «         d S )NzChecking out %s%s to %sr   z--quietr   )Ú
to_displayrM   ri   r   r
   r    Úto_argsrz   )rŽ   rƒ   r@   r¡   r¢   Úrev_displayÚflagsÚcmd_argss           r   Ú	fetch_newzSubversion.fetch_new  sÓ   € ð "×,Ò,Ñ.Ô.ˆÝ�ŠØ%ØØÝ˜ÑÔñ		
ô 	
ð 	
ð ˜Š>ˆ>Ø�KˆEˆEàˆEÝØð
àð
ð ×(Ò(Ñ*Ô*ð
ð ×ÒÑ!Ô!ð	
ð
 ð
ð ð
ð 
ð 
ˆð 	×Ò˜Ñ"Ô"Ð"Ð"Ð"r   r   c                óž   — t          d|                      ¦   «         |                     ¦   «         ||¦  «        }|                      |¦  «         d S )NÚswitch©r
   r    r¥   rz   ©rŽ   rƒ   r@   r¡   r¢   r¨   s         r   r«   zSubversion.switch/  sV   € õ  ØØ×(Ò(Ñ*Ô*Ø×ÒÑ!Ô!ØØñ
ô 
ˆð 	×Ò˜Ñ"Ô"Ð"Ð"Ð"r   c                óœ   — t          d|                      ¦   «         |                     ¦   «         |¦  «        }|                      |¦  «         d S )NÚupdater¬   r­   s         r   r¯   zSubversion.update?  sS   € õ  ØØ×(Ò(Ñ*Ô*Ø×ÒÑ!Ô!Øñ	
ô 
ˆð 	×Ò˜Ñ"Ô"Ð"Ð"Ð"r   )r   r   r   r   )r   r   r   r   )r"   r   r   r   )r8   r   r9   r   r   r:   )r@   r   r   rA   )rE   rF   rG   rH   r   r	   )r"   r   r   rS   )rƒ   r   r„   rF   r   r   r‹   )r‡   rˆ   r   r‰   )r   r�   )r   r	   )
rƒ   r   r@   r   r¡   r   r¢   r^   r   r‰   )r   )Ú__name__Ú
__module__Ú__qualname__r„   r(   Ú	repo_nameÚschemesÚclassmethodr   Ústaticmethodr!   r7   r>   rC   rK   rR   r-   r†   r�   r™   rœ   r    r©   r«   r¯   Ú__classcell__)r?   s   @r   r   r      s  ø€ € € € € Ø€DØ€GØ€IØI€Gàðð ð ñ „[ðð ðð ð ñ „\ðð ðð ð ñ „[ðð8 ð.ð .ð .ð .ð .ñ „[ð.ð ð#ð #ð #ð #ð #ñ „[ð#ð ðð ð ñ „\ðð ðð ð ñ „[ðð. ð/ð /ð /ñ „[ð/ðb ðð ð ñ „[ððð ð ð ð ð ð ðð ð ð ð8ð ð ð ð(ð ð ð ð>#ð #ð #ð #ð: ð#ð #ð #ð #ð #ð* ð#ð #ð #ð #ð #ð #ð #ð #ð #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   Úcompileru   rx   r|   r{   r   Úregisterr   r   r   ú<module>rÁ      sƒ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 	€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ DÐ DÐ Dðð ð ð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜8Ñ	$Ô	$€à�"”*˜_Ñ-Ô-€ØˆbŒjÐ1Ñ2Ô2€Ø!�r”zÐ"8Ñ9Ô9Ð Ø!�r”zÐ"4Ñ5Ô5Ð ðm#ð m#ð m#ð m#ð m#�ñ m#ô m#ð m#ð`	 €„ˆZÑ Ô Ð Ð Ð r   