File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/states/__pycache__/pip_state.cpython-310.pyc
o
�N�gʙ � @ s d Z ddlZddlZddlZddlZddlZddlZddlm Z m
Z
zddlZdZW n e
y5 dZY nw dd� Zdd � Zd
d� ZzddlZdZW n e
yX dZe� Y nw edu r�eed�sgeje_nejejkrxe� ddlZeje_ejjjejd
dd�r�ddlmZ nejjjejd
dd�r�ddlmZ neZe�e�ZdZ dd� Z!dd� Z"dd� Z#dd� Z$ d%dd�Z%d%dd�Z& d&dd �Z' d'd!d"�Z(d(d#d$�Z)dS ))a�
Installation of Python Packages Using pip
=========================================
These states manage system installed python packages. Note that pip must be
installed for these states to be available, so pip states should include a
requisite to a pkg.installed state for the package which provides pip
(``python-pip`` in most cases). Example:
.. code-block:: yaml
python-pip:
pkg.installed
virtualenvwrapper:
pip.installed:
- require:
- pkg: python-pip
� N)�CommandExecutionError�CommandNotFoundErrorTFc C s� dt jvrdS dd� t j�� D �} | D ]\}}t j�|� ~qdt� v r(t� d= dt� v r1t� d= t j�dd�}|dur?~dS dS )z'
Purge pip and its sub-modules
�pipNc S sB g | ]\}}t |d d��d�st|tj�r|j�d�r||f�qS )�
__module__� zpip.)�getattr�
startswith�
isinstance�types�
ModuleType�__name__)�.0�k�v� r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/states/pip_state.py�
<listcomp>0 s �
�
��zpurge_pip.<locals>.<listcomp>)�sys�modules�items�pop�globals�locals)Zpip_related_entries�name�entryZsys_modules_pipr r r � purge_pip) s
�
�r c C s t jjj| ddd�S )zM
True when the pip version has the `pip._internal.exceptions` module
�>=�10.0��ver1�oper�ver2)�salt�utils�versions�compare��verr r r �pip_has_internal_exceptions_modC s
�r( c C s t | �rdS tjjj| ddd�S )zC
True when the pip version has the `pip.exceptions` module
Fr �1.0r )r( r"