ok

Mini Shell

Direktori : /opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/
Upload File :
Current File : //opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyc

�
x�_c@@s�ddlmZddlZddlZddlZddlmZddl	mZ
ddl	mZddl
mZmZddlmZmZddlmZddlmZdd	lmZdd
lmZmZmZmZer'ddlmZm Z ddlm!Z!dd
lm"Z"m#Z#ne
j$Z$e
j%Z%ej&e'�Z(ej)d�Z*d�Z+defd��YZ,ej-e,�dS(i(tabsolute_importN(tparse(trequest(t
BadCommandtSubProcessError(tdisplay_paththide_url(tmake_command(t
TempDirectory(tMYPY_CHECK_RUNNING(tRemoteNotFoundErrortVersionControlt!find_path_to_setup_from_repo_roottvcs(tOptionaltTuple(t
HiddenText(tAuthInfot
RevOptionss^[a-fA-F0-9]{40}$cC@sttj|��S(N(tboolt
HASH_REGEXtmatch(tsha((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytlooks_like_hash*stGitcB@s
eZdZdZdZdZdZd
Zed��Z	d�Z
d
�Zed��Z
d�Zed��Zed��Zed��Zd�Zd�Zd�Zed��Zedd��Zed��Zed��Zed��Zed��ZRS(tgits.gittclonesgit+https	git+httpssgit+sshsgit+gitsgit+filetGIT_DIRt
GIT_WORK_TREEtHEADcC@s|gS(N((trev((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytget_base_rev_args:scC@se|jt|��\}}|js(tS|j||j�sAtSt|j||j�d�}|S(Ni(tget_url_rev_optionsRRtFalsetis_commit_id_equalRtget_revision_sha(tselfturltdestt_trev_optionstis_tag_or_branch((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytis_immutable_rev_checkout>s	cC@spd}|jdg�}|j|�rD|t|�j�d}nd}dj|jd�d �}t|�S(Nsgit version tversionitt.i(trun_commandt
startswithtlentsplittjoint
parse_version(R$tVERSION_PFXR+((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytget_git_versionOscC@sWdddg}|j|ddd|�}|j�}|jd�rS|td�Sd	S(
sl
        Return the current branch, or None if HEAD isn't at a branch
        (e.g. detached HEAD).
        ssymbolic-refs-qRtextra_ok_returncodesitcwdsrefs/heads/(iN(R.tstripR/R0tNone(tclstlocationtargstoutputtref((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytget_current_branch\s
c
C@ss|jd�s|d}ntdd��B}|j|jd|�|jdddd|gd	|j�Wd
QXd
S(s@Export the Git repository at the url to the destination locationt/tkindtexportR%scheckout-indexs-as-fs--prefixR7N(tendswithRtunpacktpathR.(R$R;R%ttemp_dir((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyRBqs
c
C@sd}y|jd|gd|�}Wntk
r8nXi}xc|j�j�D]O}y|j�\}}Wn&tk
r�tdj|���nX|||<qRWdj|�}dj|�}	|j|�}|dk	r�|t	fS|j|	�}|t
fS(s�
        Return (sha_or_none, is_branch), where sha_or_none is a commit hash
        if the revision names a remote branch or tag, otherwise None.

        Args:
          dest: the repository directory.
          rev: the revision name.
        R,sshow-refR7sunexpected show-ref line: {!r}srefs/remotes/origin/{}srefs/tags/{}N(R.RR8t
splitlinesR1t
ValueErrortformattgetR9tTrueR!(
R:R&RR=trefstlineRR>t
branch_refttag_ref((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyR#~s&


cC@s�|j}|dk	st�|j||�\}}|dk	rg|j|�}|rZ|nd|_|St|�s�tjd|�n|j	d�s�|S|j
tdd||j��d|�|j
|dd�}|j|�}|S(	s�
        Resolve a revision to a new RevOptions object with the SHA1 of the
        branch, tag, or ref if found.

        Args:
          rev_options: a RevOptions object.
        s:Did not find branch or tag '%s', assuming revision or ref.srefs/tfetchs-qR7Rt
FETCH_HEADN(targ_revR9tAssertionErrorR#tmake_newtbranch_nameRtloggertwarningR/R.Rtto_argstget_revision(R:R&R%R(RRt	is_branch((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytresolve_revision�s&
	
cC@s|s
tS|j|�|kS(s�
        Return whether the current commit hash equals the given name.

        Args:
          dest: the repository directory.
          name: a string name.
        (R!RY(R:R&tname((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyR"�s	cC@s)|j�}tjd||t|��|jtdd||��|jr|j|||�}t|dd�}|dkr�|j
||j�stdd|j��}|j|d|�qq|j|�|krdj
|�}dd|d	|g}|j|d|�qn|j|�dS(
NsCloning %s%s to %sRs-qRUtcheckoutR7s	origin/{}s-bs--track(t
to_displayRVtinfoRR.RRR[tgetattrR9R"RXR?RItupdate_submodules(R$R&R%R(trev_displayRUtcmd_argsttrack_branch((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyt	fetch_new�s 	cC@s[|jtdd|�d|�tdd|j��}|j|d|�|j|�dS(Ntconfigsremote.origin.urlR7R]s-q(R.RRXRa(R$R&R%R(Rc((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytswitchscC@s�|j�td�kr7|jdddgd|�n|jddgd|�|j|||�}tddd|j��}|j|d|�|j|�dS(Ns1.9.0RPs-qs--tagsR7tresets--hard(R5R3R.R[RRXRa(R$R&R%R(Rc((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytupdatescC@s�|jdddgdd
d|�}|j�}y|d}Wntk
rWt�nXx'|D]}|jd�r_|}Pq_q_W|jd	�d}|j�S(s�
        Return URL of the first remote encountered.

        Raises RemoteNotFoundError if the repository does not have a remote
        url configured.
        Rfs--get-regexpsremote\..*\.urlR6iR7isremote.origin.url t (i(R.RGt
IndexErrorR
R/R1R8(R:R;tstdouttremotestfound_remotetremoteR%((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytget_remote_urls



cC@s:|dkrd}n|jd|gd|�}|j�S(NRs	rev-parseR7(R9R.R8(R:R;Rtcurrent_rev((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyRY5s
	cC@sy|jddgd|�j�}tjj|�sKtjj||�}ntjjtjj|d��}t||�S(s~
        Return the path to setup.py, relative to the repo root.
        Return None if setup.py is in the repo root.
        s	rev-parses	--git-dirR7s..(R.R8tosREtisabsR2tabspathR(R:R;tgit_dirt	repo_root((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pytget_subdirectory>s!cC@sXt|�\}}}}}|jd�r�|t|jd�� }|tj|�jdd�jd�}t|||||f�}|jd�d}	||	 t||	||||f�}nd|kr*d|ks�t	�|jdd	�}t
t|�j|�\}}
}|jd
d�}n!t
t|�j|�\}}
}||
|fS(s9
        Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'.
        That's required because although they use SSH they sometimes don't
        work with a ssh:// scheme (e.g. GitHub). But we need a scheme for
        parsing. Hence we remove it again afterwards and return it as a stub.
        tfileR@s\t+is://sfile:sgit+s
git+ssh://sssh://R,(
turlsplitRCR0tlstripturllib_requestturl2pathnametreplacet
urlunsplittfindRStsuperRtget_url_rev_and_auth(R:R%tschemetnetlocREtquerytfragmenttinitial_slashestnewpatht
after_plusRt	user_pass((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyR�Ms"
 !!cC@sKtjjtjj|d��s%dS|jdddddgd|�dS(Ns.gitmodulest	submoduleRis--inits--recursives-qR7(RrREtexistsR2R.(R:R;((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyRaps
!cC@s�tt|�j|�}|r"|Sy%|jddgd|dt�}Wn3tk
rktjd|�dSt	k
r|dSXt
jj|j
d��S(Ns	rev-parses--show-toplevelR7tlog_failed_cmdsKcould not determine if %s is under git control because git is not availables
(R�Rtget_repository_rootR.R!RRVtdebugR9RRrREtnormpathtrstrip(R:R;tloctr((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyR�ys

	
(Rsgit+https	git+httpssgit+sshsgit+gitsgit+file(RRN(t__name__t
__module__R\tdirnamet	repo_nametschemest
unset_environtdefault_arg_revtstaticmethodRR*R5tclassmethodR?RBR#R[R"ReRgRiRpR9RYRwR�RaR�(((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyR.s0		
	
(-			#	(.t
__future__Rtloggingtos.pathRrtretpip._vendor.packaging.versionRR3tpip._vendor.six.moves.urllibturllib_parseRR|tpip._internal.exceptionsRRtpip._internal.utils.miscRRtpip._internal.utils.subprocessRtpip._internal.utils.temp_dirRtpip._internal.utils.typingR	t pip._internal.vcs.versioncontrolR
RRR
ttypingRRRRRRzRt	getLoggerR�RVtcompileRRRtregister(((sF/opt/alt/python27/lib/python2.7/site-packages/pip/_internal/vcs/git.pyt<module>s0"			�`

Zerion Mini Shell 1.0