Current File : //lib/python3.9/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc
a

[��f�
�@s�ddlZddlZddlZddlZddlZddlmZmZe�e	�Z
e�d�Ze
d�dd�Ze
d�dd�Ze
d�d	d
�Zeeed�dd�Ze
d�d
d�Ze
d�dd�Ze
d�dd�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	�B/usr/lib/python3.9/site-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.
    Zreal_prefix)�hasattrrr	r	r	r
�!_running_under_regular_virtualenvsr
cCst�p
t�S)zBReturn True if we're running inside a virtualenv, False otherwise.)rr
r	r	r	r
�running_under_virtualenvsrcCshtj�tjd�}z>t|dd��}|����Wd�WS1sB0YWntybYdS0dS)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)Zpyvenv_cfg_file�fr	r	r
�_get_pyvenv_cfg_lines$s0rcCsPt�}|durt�d�dS|D]*}t�|�}|dur |�d�dkr dSq dS)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�valueZfalseF)r�loggerZwarning�#_INCLUDE_SYSTEM_SITE_PACKAGES_REGEX�match�group)Z	cfg_lines�linerr	r	r
�_no_global_under_venv3s�
rcCs0tj�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)Zsite_mod_dirZno_global_site_packages_filer	r	r
�#_no_global_under_regular_virtualenvPs�r%cCst�rt�St�rt�SdS)zHReturns a boolean, whether running in venv with no system site-packages.F)rrr
r%r	r	r	r
�virtualenv_no_global^s
r&)Zloggingr�rer"r�typingrrZ	getLogger�__name__r�compiler�boolrr
r�strrrr%r&r	r	r	r
�<module>s 
�