HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-310.pyc
o

@%Ne�
�@s�ddlZddlZddlZddlZddlZddlmZmZe�e	�Z
e�d�Zde
fdd�Zde
fdd�Zde
fd	d
�Zdeeefdd�Zde
fd
d�Zde
fdd�Zde
fdd�ZdS)�N)�List�Optionalz8include-system-site-packages\s*=\s*(?P<value>true|false)�returncCstjttdtj�kS)znChecks if sys.base_prefix and sys.prefix match.

    This handles PEP 405 compliant virtual environments.
    �base_prefix)�sys�prefix�getattr�r	r	�@/usr/lib/python3/dist-packages/pip/_internal/utils/virtualenv.py�_running_under_venvsrcCs
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_virtualenvs
rcCst�pt�S)zBReturn True if we're running inside a virtualenv, False otherwise.)rrr	r	r	r
�running_under_virtualenvsrcCsftj�tjd�}z t|dd��}|����Wd�WS1s!wYWdSty2YdSw)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�open�read�
splitlines�OSError)�pyvenv_cfg_file�fr	r	r
�_get_pyvenv_cfg_lines$s
(��rcCsPt�}|durt�d�dS|D]}t�|�}|dur%|�d�dkr%dSqdS)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_venv3s�
�r$cCs0tj�tj�tj��}tj�|d�}tj�|�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_virtualenvPs�r,cCst�rt�St�rt�SdS)zHReturns a boolean, whether running in venv with no system site-packages.F)rr$rr,r	r	r	r
�virtualenv_no_global^s
r-)�loggingr�rer'r�typingrr�	getLogger�__name__r�compiler�boolrrr�strrr$r,r-r	r	r	r
�<module>s"
�