o
    ©„jà  ã                   @  sl   d dl m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„Zdd	d
„Zddd„Zddd„ZdS )é    )ÚannotationsNz8include-system-site-packages\s*=\s*(?P<value>true|false)ÚreturnÚboolc                   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	   ú\/var/www/html/django_cbt/venv/lib/python3.10/site-packages/pip/_internal/utils/virtualenv.pyÚrunning_under_virtualenv   s   r   úlist[str] | Nonec                  C  sf   t j tjd¡} z t| dd��}| ¡  ¡ W  d  ƒ W S 1 s!w   Y  W dS  ty2   Y dS w )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   
(ÿÿ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_venv%   s   ÿ
€r!   c                   C  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
   Úvirtualenv_no_globalB   s   r"   )r   r   )r   r   )Ú
__future__r   Úloggingr   Úrer   Ú	getLoggerÚ__name__r   Úcompiler   r   r   r!   r"   r	   r	   r	   r
   Ú<module>   s    
ÿ


