ó
    Þ j€  ã                   óò   • S SK r S SKrS SKrS SKrS SKrS SKJrJr  \ R                  " \	5      r
\R                  " S5      rS\4S jrS\4S jrS\4S jrS\\\      4S jrS\4S	 jrS\4S
 jrS\4S jrg)é    N)ÚListÚOptionalz8include-system-site-packages\s*=\s*(?P<value>true|false)Úreturnc                  ób   • [         R                  [        [         S[         R                  5      :g  $ )zfChecks if sys.base_prefix and sys.prefix match.

This handles PEP 405 compliant virtual environments.
Úbase_prefix)ÚsysÚprefixÚgetattr© ó    ÚX/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/utils/virtualenv.pyÚ_running_under_venvr      s    € ô
 �:‰:œ¤ m´S·Z±ZÓ@Ñ@Ð@r   c                  ó"   • [        [        S5      $ )zeChecks if sys.real_prefix is set.

This handles virtual environments created with pypa's virtualenv.
Úreal_prefix)Úhasattrr   r   r   r   Ú _running_under_legacy_virtualenvr      s   € ô ”3˜Ó&Ð&r   c                  ó8   • [        5       =(       d
    [        5       $ )zDTrue if we're running inside a virtual environment, False otherwise.)r   r   r   r   r   Úrunning_under_virtualenvr      s   € äÓ ×FÔ$DÓ$FÐFr   c                  ó  • [         R                  R                  [        R                  S5      n  [        U SS9 nUR                  5       R                  5       sSSS5        $ ! , (       d  f       g= f! [         a     gf = f)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Úfs     r   Ú_get_pyvenv_cfg_linesr    $   s^   € ô
 —g‘g—l‘l¤3§:¡:¨|Ó<€Oðô �/¨GÒ4¸Ø—6‘6“8×&Ñ&Ó(÷ 5×4×4ûäó Ùðús.   °
A3 ºA"Á	A3 Á"
A0Á,A3 Á0A3 Á3
B Á?B c                  ó¾   • [        5       n U c  [        R                  S5        gU  H4  n[        R	                  U5      nUc  M  UR                  S5      S:X  d  M4    g   g)aB  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.
zŽ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'   s      r   Ú_no_global_under_venvr+   3   sb   € ô &Ó'€IØÑô 	�‰ð#ô	
ð
 ãˆÜ3×9Ñ9¸$Ó?ˆØÓ §¡¨WÓ!5¸Õ!@Ùñ ð r   c                  ó  • [         R                  R                  [         R                  R                  [        R
                  5      5      n [         R                  R                  U S5      n[         R                  R                  U5      $ )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_files     r   Ú"_no_global_under_legacy_virtualenvr4   P   sV   € ô —7‘7—?‘?¤2§7¡7§?¡?´4·=±=Ó#AÓB€LÜ#%§7¡7§<¡<ØØ%ó$Ð ô �7‰7�>‰>Ð6Ó7Ð7r   c                  óh   • [        5       (       a
  [        5       $ [        5       (       a
  [        5       $ g)zHReturns a boolean, whether running in venv with no system site-packages.F)r   r+   r   r4   r   r   r   Úvirtualenv_no_globalr6   ^   s+   € ô ×ÑÜ$Ó&Ð&ä'×)Ñ)Ü1Ó3Ð3àr   )Úloggingr   Úrer/   r   Útypingr   r   Ú	getLoggerÚ__name__r$   Úcompiler&   Úboolr   r   r   Ústrr    r+   r4   r6   r   r   r   Ú<module>r?      sš   ðÛ Û 	Û 	Û Û 
ß !à	×	Ò	˜8Ó	$€Ø&(§j¢jØ?ó'Ð #ð
A˜Tô Að'¨$ô 'ðG $ô Gð
˜x¨¨S©	Ñ2ô ð˜tô ð:8¨Dô 8ð
˜dõ 
r   