o EcL-@sddlZddlZddlZddlmZmZmZddlmZm Z m Z m Z m Z ddl mZmZddlmZmZmZmZmZeeZedZedZedZed ZGd d d eZeedS) N)ListOptionalTuple) HiddenText display_pathis_console_interactiveis_installable_dirsplit_auth_from_netloc) CommandArgs make_command)AuthInfoRemoteNotFoundError RevOptionsVersionControlvcsz url="([^"]+)"zcommitted-rev="(\d+)"z\s*revision="(\d+)"z(.*)c seZdZdZdZdZdZedede fddZ e d ede efd d Z ed edefd dZedededeeeeeeeffffdd Zededeeeeefffdd Ze deedeedefddZed edefddZed edeeeeffddZededeede fd d!Zd4d#e dd"ffd$d% Zdeed&ffd'd(Zdeed&ffd)d*Zdefd+d,Zdeded-edd"fd.d/Z deded-edd"fd0d1Z!deded-edd"fd2d3Z"Z#S)5 Subversionsvnz.svncheckout)zsvn+sshzsvn+httpz svn+httpszsvn+svnzsvn+file remote_urlreturncCdS)NT)clsrrrO/opt/alt/python310/lib/python3.10/site-packages/pip/_internal/vcs/subversion.pyshould_add_vcs_url_prefix$sz$Subversion.should_add_vcs_url_prefixrevcCsd|gS)Nz-rr)rrrrget_base_rev_args(szSubversion.get_base_rev_argslocationc Csd}t|D]P\}}}|j|vrg|dd<q||jtj||jd}tj|s.q||\}}||krD|dus?J|d}n|rK||sRg|dd<qt ||}qt |S)zR Return the maximum revision for all files under a given location rNentries/) oswalkdirnameremovepathjoinexists_get_svn_url_rev startswithmaxstr) rrZrevisionbasedirs_Z entries_fnZdirurlZlocalrevrrr get_revision,s$        zSubversion.get_revisionnetlocschemecs|dkr t||St|S)z This override allows the auth information to be passed to svn via the --username and --password options instead of via the URL. Zssh)superget_netloc_and_authr )rr/r0 __class__rrr2IszSubversion.get_netloc_and_authurlcs.t|\}}}|drd|}|||fS)Nzssh://zsvn+)r1get_url_rev_and_authr()rr5rZ user_passr3rrr6Xs  zSubversion.get_url_rev_and_authusernamepasswordcCs(g}|r |d|g7}|r|d|g7}|S)Nz --usernamez --passwordr)r7r8Z extra_argsrrr make_rev_args`s   zSubversion.make_rev_argscCsZ|}t|s|}tj|}||krtd|tt|r||\}}|dur+t|S)NzMCould not find Python project for directory %s (tried all parent directories))rr r$r"loggerZwarningr r')rrZ orig_locationZ last_locationr5Z_revrrrget_remote_urlls  zSubversion.get_remote_urlc Csddlm}tj||jd}tj|r.t| }|}Wdn1s(wYnd}d}| dsA| dsA| drbt t t j |d}|dd=|dd }d d |Ddg}n\| d rt|} | sutd || d}dd t|Ddg}n6z'|jdd|gddd} t| } | dusJ| d}dd t| D}Wn|ydg}}Ynw|rt|} || fSd} || fS)Nr)InstallationErrorr89Z10z cSs,g|]}t|dkr|drt|dqS) )lenint).0drrr s,z/Subversion._get_svn_url_rev..zs      "