3 ”Rezã@s¬ddlmZddlZddlZddlZddlZddlZddlZddlm Z e r\ddl m Z m Z ej eƒZejdƒZdd„Zdd „Zd d „Zd d „Zdd„Zdd„Zdd„ZdS)é)Úabsolute_importN)ÚMYPY_CHECK_RUNNING)ÚListÚOptionalz8include-system-site-packages\s*=\s*(?Ptrue|false)cCstjttdtjƒkS)znChecks if sys.base_prefix and sys.prefix match. This handles PEP 405 compliant virtual environments. Ú base_prefix)ÚsysÚprefixÚgetattr©r r ú�/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/virtualenv.pyÚ_running_under_venvsr cCs ttdƒS)zmChecks if sys.real_prefix is set. This handles virtual environments created with pypa's virtualenv. Ú real_prefix)Úhasattrrr r r r Ú!_running_under_regular_virtualenvsrcCs tƒp tƒS)zGReturn True if we're running inside a virtualenv, False otherwise. )r rr r r r Úrunning_under_virtualenv(srcCsPtjjtjdƒ}y&tj|dd��}|jƒjƒSQRXWnt k rJdSXdS)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ÚjoinrrÚioÚopenÚreadÚ splitlinesÚIOError)Úpyvenv_cfg_fileÚfr r r Ú_get_pyvenv_cfg_lines/s rcCsRtƒ}|dkrtjdƒdSx0|D](}tj|ƒ}|dk r"|jdƒdkr"dSq"WdS)aZCheck `{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ÚvalueÚfalseF)rÚloggerÚwarningÚ#_INCLUDE_SYSTEM_SITE_PACKAGES_REGEXÚmatchÚgroup)Ú cfg_linesÚliner"r r r Ú_no_global_under_venv?s   r&cCs0tjjtjjtjƒƒ}tjj|dƒ}tjj|ƒ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)rrÚdirnameÚabspathÚsiteÚ__file__rÚexists)Ú site_mod_dirÚno_global_site_packages_filer r r Ú#_no_global_under_regular_virtualenv]sr.cCstƒr tƒStƒrtƒSdS)zMReturns a boolean, whether running in venv with no system site-packages. F)r r&rr.r r r r Úvirtualenv_no_globalks r/)Ú __future__rrÚloggingrÚrer)rÚpip._internal.utils.typingrÚtypingrrÚ getLoggerÚ__name__rÚcompiler!r rrrr&r.r/r r r r Ús&