OwlCyberSecurity - MANAGER
Edit File: req_install.cpython-38.pyc
U �^�v � @ sL d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZm Z d dl mZ d dlm Z d dlmZ d dlmZ d dlmZ d d lmZ d d lmZ d dlmZ d dlmZ d d lmZ d dlmZ d dl mZ! d dl"m#Z$ d dl%m&Z' d dl(m)Z) d dl*m+Z+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJ d dlKmLZL eH�r&d dlMmNZNmOZOmPZPmQZQmRZRmSZSmTZT d dlmUZU d d lVmWZW d d!lXmYZY d d"lZm[Z[ d d#l\m]Z] d d$l^m_Z_ e�`ea�Zbd%d&� ZcG d'd(� d(ed�ZedS ))� )�absolute_importN)� pkg_resources�six)�Requirement)�canonicalize_name)�Version)�parse)�Pep517HookCaller)� pep425tags)�NoOpBuildEnvironment)�InstallationError)� get_scheme)�Link)�generate_metadata)�install_editable)�install)� install_wheel)�load_pyproject_toml�make_pyproject_path)�UninstallPathSet)� deprecated)�Hashes)� indent_log)�PIP_DELETE_MARKER_FILENAME�has_delete_marker_file�write_delete_marker_file) �ask_path_exists� backup_dir�display_path�dist_in_site_packages�dist_in_usersite�get_installed_version�hide_url�redact_auth_from_url�rmtree)�get_metadata)� TempDirectory)�MYPY_CHECK_RUNNING)�running_under_virtualenv)�vcs)�Any�Dict�Iterable�List�Optional�Sequence�Union)�BuildEnvironment)� WheelCache)� PackageFinder)�Distribution)�SpecifierSet)�Markerc C sl | � tj�}|�d�rtj}n|�d�s,t�tj}tj� |�\}}tj� |�d }t�||�}||||d�S )zQReturn a pkg_resources.Distribution for the provided metadata directory. z .egg-infoz .dist-infor )�project_name�metadata)�rstrip�os�sep�endswithr r4 �AssertionErrorZDistInfoDistribution�path�split�splitextZPathMetadata)�metadata_directoryZdist_dirZdist_clsZbase_dirZ dist_dir_nameZ dist_namer8 � rB �?/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py� _get_distI s �rD c @ sT e Zd ZdZdJdd�Zdd� Zd d � Zdd� Zd d� Ze dd� �Z e dd� �Ze dd� �Ze dd� �Z dKdd�Ze dd� �ZdLdd�Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Ze d*d+� �Ze d,d-� �Ze d.d/� �Ze d0d1� �Zd2d3� Zd4d5� Zd6d7� Ze d8d9� �Zd:d;� Zd<d=� Z d>d?� Z!dMd@dA�Z"dNdBdC�Z#dDdE� Z$dFdG� Z%dOdHdI�Z&dS )P�InstallRequirementz� Represents something that may be installed later on, may have information about where to fetch the relevant requirement and also contains logic for installing the said requirement. NFrB c C sL |d kst |t�st|��|| _|| _|| _|d kr<d | _ntj� tj� |��| _|| _| | _|d krz|rz|j rzt|j �}| | _| _d | _| jr�| jjr�| jj| _|r�|| _n |r�dd� |jD �| _nt� | _|d kr�|r�|j}|| _d | _d| _d | _d | _| �r | ni | _d| _d| _|| _t � | _!d | _"d | _#g | _$d | _%|| _&d S )Nc S s h | ]}t �|��qS rB )r Z safe_extra��.0�extrarB rB rC � <setcomp>� s z.InstallRequirement.__init__.<locals>.<setcomp>F)'� isinstancer r= �req� comes_from� constraint� source_dirr: r>