403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.7/site-packages/pip/_internal/vcs/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.7/site-packages/pip/_internal/vcs/__pycache__/git.cpython-37.pyc
B

�N�a�E�@sddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZddlm
Z
mZddlmZmZmZddlmZddlmZmZmZmZmZmZmZejjZejjZe� e!�Z"e�#d�Z$e�#d�Z%e�#d	ej&�Z'e(e)d
�dd�Z*Gd
d�de�Z+e�,e+�dS)�N)�List�Optional�Tuple)�
BadCommand�InstallationError)�
HiddenText�display_path�hide_url)�make_command)�AuthInfo�RemoteNotFoundError�RemoteNotValidError�
RevOptions�VersionControl�(find_path_to_project_root_from_repo_root�vcsz(^git version (\d+)\.(\d+)(?:\.(\d+))?.*$z^[a-fA-F0-9]{40}$a/^
    # Optional user, e.g. 'git@'
    (\w+@)?
    # Server, e.g. 'github.com'.
    ([^/:]+):
    # The server-side path. e.g. 'user/project.git'. Must start with an
    # alphanumeric character so as not to be confusable with a Windows paths
    # like 'C:/foo/bar' or 'C:\foo\bar'.
    (\w[^:]*)
    $)�sha�returncCstt�|��S)N)�bool�
HASH_REGEX�match)r�r�9/usr/lib/python3.7/site-packages/pip/_internal/vcs/git.py�looks_like_hash7srcseZdZdZdZdZdZdZdZe	e
ee
d�dd	��Ze
e
e
d
�dd�Zeed
fd�dd�Zee
ee
d�dd��Zee
e
eee
e
fd�dd��Zee
e
e
d�dd��Zee
eeed�dd��Zee
ee
e
d�dd��Ze
eedd�d d!�Ze
eedd�d"d#�Ze
eedd�d$d%�Zee
e
d�d&d'��Ze	e
e
d(�d)d*��Zee
e
e
d+�d,d-��Z ed;e
ee
e
d+�d.d/��Z!ee
ee
d�d0d1��Z"ee
ee
ee
e#fd(��fd2d3��Z$ee
dd�d4d5��Z%ee
ee
d��fd6d7��Z&e	e
e
d8�d9d:��Z'�Z(S)<�GitZgitz.git�clone)zgit+httpz	git+httpszgit+sshzgit+gitzgit+file)ZGIT_DIRZ
GIT_WORK_TREE�HEAD)�revrcCs|gS)Nr)rrrr�get_base_rev_argsKszGit.get_base_rev_args)�url�destrcCsJ|�t|��\}}|jsdS|�||j�s.dSt|�||j�d�}|S)NFr)Zget_url_rev_optionsr	r�is_commit_id_equalr�get_revision_sha)�selfrr �_�rev_optionsZis_tag_or_branchrrr�is_immutable_rev_checkoutOszGit.is_immutable_rev_checkout.)rcCsF|jdgddd�}t�|�}|s0t�d|�dStdd�|��D��S)	N�versionFT)�show_stdout�stdout_onlyzCan't parse git version: %srcss|]}t|�VqdS)N)�int)�.0�crrr�	<genexpr>csz&Git.get_git_version.<locals>.<genexpr>)�run_command�GIT_VERSION_REGEXr�logger�warning�tuple�groups)r#r'rrrr�get_git_version]s
zGit.get_git_version)�locationrcCsDdddg}|j|ddd|d�}|��}|�d�r@|td�d	�Sd	S)
zl
        Return the current branch, or None if HEAD isn't at a branch
        (e.g. detached HEAD).
        zsymbolic-refz-qr)�FT)�extra_ok_returncodesr(r)�cwdzrefs/heads/N)r.�strip�
startswith�len)�clsr5�args�output�refrrr�get_current_branches


zGit.get_current_branch)r rrc	Cs�|jd|g|dddd�}i}xh|���d�D]V}|�d�}|s@q,y|jdd	d
�\}}Wn"tk
rxtd|����YnX|||<q,Wd|��}d
|��}	|�|�}
|
dk	r�|
dfS|�|	�}
|
dfS)z�
        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.
        zshow-refFT�ignore)r8r(r)�
on_returncode�
�
� �)�maxsplitzunexpected show-ref line: zrefs/remotes/origin/z
refs/tags/N)r.r9�split�rstrip�
ValueError�get)r<r rr>Zrefs�lineZref_shaZref_nameZ
branch_refZtag_refrrrrr"~s.




zGit.get_revision_shacCs.|�d�rdSt|�sdS|�||�r*dSdS)a$
        Return true if rev is a ref or is a commit that we don't have locally.

        Branches and tags are not considered in this method because they are
        assumed to be always available locally (which is a normal outcome of
        ``git clone`` and ``git fetch --tags``).
        zrefs/TF)r:r�
has_commit)r<r rrrr�
_should_fetch�s	
zGit._should_fetch)r rr%rcCs�|j}|dk	st�|�||�\}}|dk	rF|�|�}|r<|nd|_|St|�sZt�d|�|�||�sj|S|j	t
dd||���|d�|j|dd�}|�|�}|S)z�
        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.
        Nz:Did not find branch or tag '%s', assuming revision or ref.�fetchz-q)r8Z
FETCH_HEAD)r)
Zarg_rev�AssertionErrorr"�make_new�branch_namerr0r1rNr.r
�to_args�get_revision)r<r rr%rrZ	is_branchrrr�resolve_revision�s&

zGit.resolve_revision)r �namercCs|sdS|�|�|kS)z�
        Return whether the current commit hash equals the given name.

        Args:
          dest: the repository directory.
          name: a string name.
        F)rT)r<r rVrrrr!�s	zGit.is_commit_id_equalNc	Cs |��}t�d||t|��|��dkr@|�tddd||��n|�tdd||��|jr�|�|||�}t	|dd�}t�
d||�|dkr�|�||j�s�tdd|���}|j||d	�n4|�
|�|kr�d
|��}dd|d|g}|j||d	�n|�|�}|�|�}t�d
||j�|�|�dS)NzCloning %s%s to %s)rF�rz--filter=blob:nonez-qrRzRev options %s, branch_name %s�checkout)r8zorigin/z-bz--trackzResolved %s to commit %s)Z
to_displayr0�inforr4r.r
rrU�getattr�debugr!rSr@rTrQ�update_submodules)	r#r rr%Zrev_displayrR�cmd_argsZtrack_branchrrrr�	fetch_newsD




z
Git.fetch_newcCsB|jtdd|�|d�tdd|���}|j||d�|�|�dS)N�configzremote.origin.url)r8rXz-q)r.r
rSr\)r#r rr%r]rrr�switch7s
z
Git.switchcCsp|��dkr"|jdddg|d�n|jddg|d�|�|||�}tddd|���}|j||d�|�|�dS)N)r6�	rOz-qz--tags)r8�resetz--hard)r4r.rUr
rSr\)r#r rr%r]rrr�updateAsz
Git.updatecCs�|jdddgddd|d�}|��}y|d}Wntk
rFt�YnXx|D]}|�d	�rN|}PqNW|�d
�d}|�|���S)z�
        Return URL of the first remote encountered.

        Raises RemoteNotFoundError if the repository does not have a remote
        url configured.
        r_z--get-regexpzremote\..*\.url)r6FT)r7r(r)r8rzremote.origin.url rEr6)r.�
splitlines�
IndexErrorrr:rH�_git_remote_to_pip_urlr9)r<r5�stdoutZremotesZfound_remoteZremoterrrr�get_remote_urlOs"



zGit.get_remote_url)rrcCsNt�d|�r|Stj�|�r*t�|���St�|�}|rB|�	d�St
|��dS)a8
        Convert a remote url from what git uses to what pip accepts.

        There are 3 legal forms **url** may take:

            1. A fully qualified url: ssh://git@example.com/foo/bar.git
            2. A local project.git folder: /path/to/bare/repository.git
            3. SCP shorthand for form 1: git@example.com:foo/bar.git

        Form 1 is output as-is. Form 2 must be converted to URI and form 3 must
        be converted to form 1.

        See the corresponding test test_git_remote_url_to_pip() for examples of
        sample inputs/outputs.
        z\w+://z
ssh://\1\2/\3N)�rer�os�path�exists�pathlibZPurePathZas_uri�	SCP_REGEX�expandr
)rZ	scp_matchrrrrfms

zGit._git_remote_to_pip_url)r5rrcCs>y |jdddd|g|dd�Wntk
r4dSXdSdS)	zU
        Check if rev is a commit that is available in the local repository.
        z	rev-parsez-qz--verifyzsha^F)r8�log_failed_cmdTN)r.r)r<r5rrrrrM�szGit.has_commitcCs*|dkrd}|jd|gdd|d�}|��S)Nrz	rev-parseFT)r(r)r8)r.r9)r<r5rZcurrent_revrrrrT�szGit.get_revisioncCsT|jddgdd|d���}tj�|�s4tj�||�}tj�tj�|d��}t||�S)z�
        Return the path to Python project root, relative to the repo root.
        Return None if the project root is in the repo root.
        z	rev-parsez	--git-dirFT)r(r)r8z..)r.r9rjrk�isabs�join�abspathr)r<r5Zgit_dirZ	repo_rootrrr�get_subdirectory�szGit.get_subdirectorycs�t|�\}}}}}|�d�r�|dt|�d���}|tj�|��dd��d�}|�d�d}	|d|	�t	||	d�||||f�}d|kr�d|ks�t
�|�d	d
�}t��|�\}}
}|�dd�}nt��|�\}}
}||
|fS)
a9
        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.
        �fileN�/�\�+r6z://zfile:zgit+z
git+ssh://zssh://�)
�urlsplit�endswithr;�lstrip�urllibZrequestZurl2pathname�replace�find�
urlunsplitrP�super�get_url_rev_and_auth)r<rZschemeZnetlocrkZqueryZfragment�initial_slashes�newpathZ
after_plusrZ	user_pass)�	__class__rrr��s 

zGit.get_url_rev_and_authcCs6tj�tj�|d��sdS|jdddddg|d�dS)Nz.gitmodulesZ	submodulercz--initz--recursivez-q)r8)rjrkrlrrr.)r<r5rrrr\�s
zGit.update_submodulescsxt��|�}|r|Sy|jddg|ddddd�}Wn2tk
rRt�d|�dStk
rddSXtj�	|�
d��S)	Nz	rev-parsez--show-toplevelFT�raise)r8r(r)rBrpzKcould not determine if %s is under git control because git is not availablez
)r��get_repository_rootr.rr0r[rrjrk�normpathrI)r<r5�loc�r)r�rrr��s&zGit.get_repository_root)�repo_urlrcCsdS)zEIn either https or ssh form, requirements must be prefixed with git+.Tr)r�rrr�should_add_vcs_url_prefix�szGit.should_add_vcs_url_prefix)N))�__name__�
__module__�__qualname__rV�dirnameZ	repo_nameZschemesZ
unset_environZdefault_arg_rev�staticmethod�strrrrr&rr*r4�classmethodrr@r"rNrrrUr!r^r`rcrhrfrMrTrtrr�r\r�r��
__classcell__rr)r�rr;sT -+7
$r)-ZloggingZos.pathrjrmriZurllib.parser}Zurllib.request�typingrrrZpip._internal.exceptionsrrZpip._internal.utils.miscrrr	Zpip._internal.utils.subprocessr
Z pip._internal.vcs.versioncontrolrrr
rrrr�parserzr�Z	getLoggerr�r0�compiler/r�VERBOSErnr�rrr�registerrrrr�<module>s2$



I

Youez - 2016 - github.com/yon3zu
LinuXploit