shell bypass 403
U
��.e 5 � @ s d dl mZ d dlZd dlZd dlZd dlmZ d dl mZ
d dl mZ d dl
mZ d dlmZ d dlmZ d dlmZ d d lmZ d d
lmZmZmZmZ er�d dlmZmZ d dlmZ d d
lm Z m!Z! e
j"Z"e
j#Z#e�$e%�Z&e�'d�Z(dd� Z)G dd� de�Z*e�+e*� dS )� )�absolute_importN)�parse)�request)�
BadCommand)�display_path)�make_command)�
TempDirectory)�MYPY_CHECK_RUNNING)�RemoteNotFoundError�VersionControl�!find_path_to_setup_from_repo_root�vcs)�Optional�Tuple)�
HiddenText)�AuthInfo�
RevOptionsz^[a-fA-F0-9]{40}$c C s t t�| ��S �N)�bool�
HASH_REGEX�match)�sha� r �9/usr/lib/python3.8/site-packages/pip/_internal/vcs/git.py�looks_like_hash* s r c s� e Zd ZdZdZdZdZdZdZe dd� �Z
d d
� Zedd� �Z
d
d� Zedd� �Zedd� �Zedd� �Zdd� Zdd� Zdd� Zedd� �Zed(dd��Zed d!� �Ze� fd"d#��Zed$d%� �Ze� fd&d'��Z� ZS ))�Git�gitz.git�clone)r zgit+httpz git+httpszgit+sshzgit+gitzgit+file)ZGIT_DIRZ
GIT_WORK_TREE�HEADc C s | gS r r ��revr r r �get_base_rev_args: s zGit.get_base_rev_argsc C s\ d}| j dgdd�}|�|�r8|t|�d � �� d }nd}d�|�d�d d� �}t|�S ) Nzgit version �versionF)�show_stdoutr � �.� )�run_command�
startswith�len�split�join�
parse_version)�selfZVERSION_PFXr"