o
ai
@ s d dl Z d dlZd dlZd dlZd dlZd dlmZmZ e e Z
edZde
fddZde
fddZde
fd d
Zdeee fddZde
fd
dZde
fddZde
fddZdS ) N)ListOptionalz8include-system-site-packages\s*=\s*(?Ptrue|false)returnc C s t jtt dt jkS )znChecks if sys.base_prefix and sys.prefix match.
This handles PEP 405 compliant virtual environments.
base_prefix)sysprefixgetattr r r /builddir/build/BUILDROOT/alt-python310-pip-21.3.1-5.el8.x86_64/opt/alt/python310/lib/python3.10/site-packages/pip/_internal/utils/virtualenv.py_running_under_venv s r c C s
t tdS )zmChecks if sys.real_prefix is set.
This handles virtual environments created with pypa's virtualenv.
real_prefix)hasattrr r r r r
!_running_under_regular_virtualenv s
r c C s t pt S )zBReturn True if we're running inside a virtualenv, False otherwise.)r r r r r r
running_under_virtualenv s r c C sf t jtjd} z t| dd}| W d W S 1 s!w Y W dS ty2 Y dS w )zReads {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) ospathjoinr r openread
splitlinesOSError)pyvenv_cfg_filefr r r
_get_pyvenv_cfg_lines$ s
(r c C sP t } | du rtd dS | D ]}t|}|dur%|ddkr% dS qdS )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.
NzCould not access 'pyvenv.cfg' despite a virtual environment being active. Assuming global site-packages is not accessible in this environment.TvaluefalseF)r loggerwarning#_INCLUDE_SYSTEM_SITE_PACKAGES_REGEXmatchgroup) cfg_linesliner r r r
_no_global_under_venv3 s
r$ c C s0 t jt jtj} t j| d}t j|S )zCheck 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 dirnameabspathsite__file__r exists)site_mod_dirno_global_site_packages_filer r r
#_no_global_under_regular_virtualenvP s r, c C s t rt S t rt S dS )zHReturns a boolean, whether running in venv with no system site-packages.F)r r$ r r, r r r r
virtualenv_no_global^ s
r- )loggingr rer' r typingr r getLogger__name__r compiler boolr r r strr r$ r, r- r r r r
s"