a
    ñ»j  ã                   @  s®   d dl mZ d dlZd dlZd dlZd dlZd dlZe e¡Z	e 
d¡Zddœdd„Zddœdd	„Zddœd
d„Zddœdd„Zddœdd„Zddœdd„Zddœdd„ZdS )é    )ÚannotationsNz8include-system-site-packages\s*=\s*(?P<value>true|false)Úbool)Úreturnc                   C  s   t jtt dt jƒkS )znChecks if sys.base_prefix and sys.prefix match.

    This handles PEP 405 compliant virtual environments.
    Úbase_prefix)ÚsysÚprefixÚgetattr© r	   r	   úDE:\soccer\ml_env\Lib\site-packages\pip/_internal/utils/virtualenv.pyÚ_running_under_venv   s    r   c                   C  s
   t tdƒS )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_legacy_virtualenv   s    r   c                   C  s   t ƒ p
tƒ S )zDTrue if we're running inside a virtual environment, False otherwise.)r   r   r	   r	   r	   r
   Úrunning_under_virtualenv    s    r   zlist[str] | Nonec                  C  sh   t j tjd¡} z>t| dd��}| ¡  ¡ W  d  ƒ W S 1 sB0    Y  W n tyb   Y dS 0 dS )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.cfgzutf-8)ÚencodingN)	ÚosÚpathÚjoinr   r   ÚopenÚreadÚ
splitlinesÚOSError)Úpyvenv_cfg_fileÚfr	   r	   r
   Ú_get_pyvenv_cfg_lines%   s    0r   c                  C  sP   t ƒ } | du rt d¡ dS | D ]*}t |¡}|dur | d¡dkr  dS q dS )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ÚvalueÚfalseF)r   ÚloggerÚwarningÚ#_INCLUDE_SYSTEM_SITE_PACKAGES_REGEXÚmatchÚgroup)Ú	cfg_linesÚliner    r	   r	   r
   Ú_no_global_under_venv4   s    ÿ
r$   c                  C  s0   t j t j tj¡¡} 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.
    zno-global-site-packages.txt)r   r   ÚdirnameÚabspathÚsiteÚ__file__r   Úexists)Úsite_mod_dirÚno_global_site_packages_filer	   r	   r
   Ú"_no_global_under_legacy_virtualenvQ   s    þr,   c                   C  s   t ƒ rtƒ S tƒ rtƒ S dS )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-   )Ú
__future__r   Úloggingr   Úrer'   r   Ú	getLoggerÚ__name__r   Úcompiler   r   r   r   r   r$   r,   r-   r	   r	   r	   r
   Ú<module>   s    
ÿ	