U .e, @ s d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl m Z ddlmZm Z mZmZmZ ddlmZ dd lmZ dd lmZ ddlmZ ddlmZmZ dd lmZ erddlmZ ddlm Z ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( e)e*Z+dd Z,G dd de-Z.dS )z)Prepares a distribution for installation N)requests))make_distribution_for_install_requirement)InstalledDistribution) unpack_url)DirectoryUrlHashUnsupportedHashUnpinnedInstallationErrorPreviousBuildDirErrorVcsHashUnsupported) expanduser) MissingHashes) indent_log)write_delete_marker_file)display_pathnormalize_path)MYPY_CHECK_RUNNING)Optional)AbstractDistribution) PackageFinder) PipSession)InstallRequirement)RequirementTrackerc C s. t | }|| ||| W 5 Q R X |S )z-Prepare a distribution for installation. )r ZtrackZprepare_distribution_metadata)reqreq_trackerfinderbuild_isolation abstract_dist r D/usr/lib/python3.8/site-packages/pip/_internal/operations/prepare.py_get_prepared_distribution, s r c sD e Zd ZdZ fddZedd Zdd Zdd Zd d Z Z S )RequirementPreparerzPrepares a Requirement c sT t t| || _|| _|| _|r,t|}|| _|r>t|}|| _ || _ || _d S )N)superr __init__src_dir build_dirr r download_dirr wheel_download_dirprogress_barr )selfr$ r% r# r&