a ljB @ s d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z m Z mZmZ ddl mZ ddlmZ ddlmZ dd lmZ dd lmZmZ ddlmZ ddlmZ dd lmZ ddlmZ ddl m!Z! ddl"m#Z# ddl$m%Z%m&Z&m'Z'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8 ddl9m:Z: e;e<Z=G dd deZ>G dd dee>Z?e8j@e8jAe8jBgZCdddd ZDe e d!d"d#ZEG d$d% d%e?ZFdS )&a Contains the Command base classes that depend on PipSession. The classes in this module are in a separate module so the commands not needing download / PackageFinder capability don't unnecessarily import the PackageFinder machinery and all its vendored dependencies, etc. N)partial)Values)AnyListOptionalTuple) WheelCache) cmdoptions)Command)CommandContextMixIn)CommandErrorPreviousBuildDirError) LinkCollector) PackageFinder)SelectionPreferences)TargetPython) PipSession)RequirementPreparer)install_req_from_editableinstall_req_from_line#install_req_from_parsed_requirementinstall_req_from_req_string)parse_requirements)InstallRequirement)RequirementTracker)BaseResolver)pip_self_version_check) deprecated) TempDirectoryTempDirectoryTypeRegistry tempdir_kinds)running_under_virtualenvc sp e Zd ZdZdd fddZeeeee dddZ eedd d Zdeee ee eddd Z ZS )SessionCommandMixinzE A class mixin for command classes needing _build_session(). Nreturnc s t d | _d S N)super__init___session)self __class__ A/usr/lib/python3.9/site-packages/pip/_internal/cli/req_command.pyr' 6 s zSessionCommandMixin.__init__optionsr$ c C sL g }t |dds*t |dd}|r*|| t |dd}|rD|| |pJdS )z7Return a list of index urls from user-provided options.no_indexFZ index_urlNZextra_index_urls)getattrappendextend)clsr/ index_urlsurlZurlsr, r, r- _get_index_urls: s z#SessionCommandMixin._get_index_urlsc C s0 | j du r*| | || _ | j dus*J | j S )zGet a default-managed session.N)r( enter_context_build_session)r) r/ r, r, r- get_default_sessionH s z'SessionCommandMixin.get_default_session)r/ retriestimeoutr$ c C s |j rtj|j sJ t|j r0tj|j dnd |d ur>|n|j|j| |d}|j rb|j |_ |jrp|j|_ |jsz|r|d ur|n|j|_|j r|j |j d|_|j |j_|S )Nhttp)cacher; trusted_hostsr5 )r= https)Z cache_dirospathisabsr joinr; r? r7 ZcertZverifyZclient_certr<