File: D:/Python311/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-311.pyc
�
�mi� � � � d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm Z ddej
j � �dej
j � dej
j � �gZ
e rddhZd � ej e
e� � D � � Z
ddd�Zdd�Zdd�ZdS )� )�annotationsN)�main)�WINDOWS�pip�.� z.exec �8 � g | ]}d � |� � ��S )r )�join)�.0�partss �AD:\Python311\Lib\site-packages\pip/_internal/utils/entrypoints.py�
<listcomp>r s2 � � � � �� ������� � � �args�list[str] | None�return�intc �^ � t j � d� � t | � � S )a� Central wrapper for all old entrypoints.
Historically pip has had several entrypoints defined. Because of issues
arising from PATH, sys.path, multiple Pythons, their interactions, and most
of them having a pip installed, users suffer every time an entrypoint gets
moved.
To alleviate this pain, and provide a mechanism for warning users and
directing them to an appropriate place for help, we now define all of
our old entrypoints as wrappers for the current one.
a WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
)�sys�stderr�writer )r s r
�_wrapperr s1 � � �J��� "�� � � ��:�:�r �strc � � t rdnd} t j � t j | � � }t j � t j � dd� � � � � t j
� � }t j � |� � |v }|r�t D ]{}t j
|� � }t j � ||� � }|rCt j � |� � r$t j � ||� � r|c S �|t! � � � d�S )zHTry to figure out the best way to invoke pip in the current environment.�Scripts�bin�PATHr z -m pip)r �os�pathr
r �prefix�normcase�environ�get�split�pathsep�_EXECUTABLE_NAMES�shutil�which�exists�samefile�#get_best_invocation_for_this_python)�binary_directory�
binary_prefix�
path_parts�exe_are_in_PATH�exe_name�found_executable�binary_executables r
� get_best_invocation_for_this_pipr3 / s � �$+�6�y�y����G�L�L���-=�>�>�M� ��!�!�"�*�.�.���"<�"<�=�=�C�C�B�J�O�O�J��g�&�&�}�5�5��C�O�� �)� � �H�%�|�H�5�5�� "����]�H� E� E�� �
��G�N�N�#4�5�5�
� �G�$�$�$�%�� �
� ����� 2�3�3�<�<�<�<r c � � t j } t j � | � � }t j |� � }|rFt j � t j |� � t j | � � � � r|S | S )z<Try to figure out the best way to invoke the current Python.) r �
executabler r �basenamer'