File: //usr/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc
a
?�fz � @ s� d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm Z e r\d dl
mZmZ e�
e�Ze�d�Zdd� Zdd � Zd
d� Zdd
� Zdd� Zdd� Zdd� ZdS )� )�absolute_importN)�MYPY_CHECK_RUNNING)�List�Optionalz8include-system-site-packages\s*=\s*(?P<value>true|false)c C s t jtt dt j�kS )znChecks if sys.base_prefix and sys.prefix match.
This handles PEP 405 compliant virtual environments.
�base_prefix)�sys�prefix�getattr� r
r
�B/usr/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py�_running_under_venv s r c C s
t td�S )zmChecks if sys.real_prefix is set.
This handles virtual environments created with pypa's virtualenv.
Zreal_prefix)�hasattrr r
r
r
r �!_running_under_regular_virtualenv s r c C s t � p
t� S )zGReturn True if we're running inside a virtualenv, False otherwise.
)r r r
r
r
r �running_under_virtualenv( s r c C sj t j�tjd�} z@tj| dd��}|�� �� W d � W S 1 sD0 Y W n t yd Y dS 0 dS )z�Reads {sys.prefix}/pyvenv.cfg and returns its contents as list of lines
Returns None, if it could not read/access the file.
z
pyvenv.cfgzutf-8)�encodingN)
�os�path�joinr r �io�open�read�
splitlines�IOError)Zpyvenv_cfg_file�fr
r
r �_get_pyvenv_cfg_lines/ s 0r c C sP t � } | du rt�d� dS | D ]*}t�|�}|dur |�d�dkr dS q dS )aZ Check `{sys.prefix}/pyvenv.cfg` for system site-packages inclusion
PEP 405 specifies that when system site-packages are not supposed to be
visible from a virtual environment, `pyvenv.cfg` must contain the following
line:
include-system-site-packages = false
Additionally, log a warning if accessing the file fails.
Nz�Could not access 'pyvenv.cfg' despite a virtual environment being active. Assuming global site-packages is not accessible in this environment.T�valueZfalseF)r �loggerZwarning�#_INCLUDE_SYSTEM_SITE_PACKAGES_REGEX�match�group)Z cfg_lines�liner r
r
r �_no_global_under_venv? s �
r! c C s0 t j�t j�tj��} t j�| d�}t j�|�S )z�Check if "no-global-site-packages.txt" exists beside site.py
This mirrors logic in pypa/virtualenv for determining whether system
site-packages are visible in the virtual environment.
zno-global-site-packages.txt)r r �dirname�abspath�site�__file__r �exists)Zsite_mod_dirZno_global_site_packages_filer
r
r �#_no_global_under_regular_virtualenv] s
�r'