
    3in                        d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ ddlmZ e	rd d	lmZ d d
lmZ ddlmZ  ej$                  e      Z G d d      Zy)    )annotationsN)ConfigParser)Path)TYPE_CHECKINGClassVar)user_config_dir   )convert)Mapping)Any)TypeDatac                  j    e Zd ZU dZded<   ddddZded	<   d
ZdddZddZddZ	ddZ
edd       Zy)	IniConfigVIRTUALENV_CONFIG_FILEzClassVar[str]VIRTUALENV_CONFIG_FILE_ENV_VARzfailed to parseactivemissing)NTFz ClassVar[dict[bool | None, str]]STATE
virtualenvNc                   |t         j                  n|}|j                  | j                  d       }|d u| _        |t        t        dd            dz  }nt        |      }|| _        i | _        d }d | _	        	 | j                  j                         | _	        | j                  ri| j                  j                         | _        t               | _        	 | j                          | j                  j                  | j                         | _        |t(        j+                  d||       y y # t$        $ r}|}Y d }~+d }~ww xY w# t&        $ r}|}Y d }~Cd }~ww xY w)Nr   pypa)appname	appauthorzvirtualenv.iniz(failed to read config file %s because %r)osenvirongetr   
is_env_varr   r   config_file_cachehas_config_fileexistsresolver   config_parser_loadhas_sectionsectionhas_virtualenv_section	ExceptionOSErrorLOGGERerror)selfenvr   	exceptionexcs        H/var/www/opsc/venv/lib/python3.12/site-packages/virtualenv/config/ini.py__init__zIniConfig.__init__   s8   KbjjSggdAA4H%T1|vVWZjjK{+K&	#	$#'#3#3#:#:#<D  ###'#3#3#;#;#= %1^"$JJL262D2D2P2PQUQ]Q]2^D/  LLC[R[\ ! ! $ #I$  	I	s0   9E  :D( (	D=1D88D= 	E	EEc                    | j                   j                  dd      5 }| j                  j                  |      cd d d        S # 1 sw Y   y xY w)Nrtzutf-8)encoding)r   openr#   	read_file)r,   file_handlers     r0   r$   zIniConfig._load9   sF    ""4'": 	>l%%//=	> 	> 	>s   AAc                   ||f}|| j                   v r| j                   |   S 	 d}| j                  j                  | j                  |j	                               }t        |||      }||f}|| j                   |<   |S # t        $ r d }Y w xY w)Nfile)r   r#   r   r&   lowerr
   r(   )r,   keyas_type	cache_keysource	raw_valuevalueresults           r0   r   zIniConfig.get=   s    L	#;;y))	F**..t||SYY[IIIw7EF]F "(I  	F	s   AA; ;B	B	c                Z    t        | j                        xr t        | j                        S N)boolr    r'   r,   s    r0   __bool__zIniConfig.__bool__K   s#    D(()Od43N3N.OO    c           	         d| j                    d| j                  | j                      d| j                  rdnd d| j                   d	S )Nz
config file  z (changed z via env var ))r   r   r    r   r   rE   s    r0   epilogzIniConfig.epilogN   sW     T--.a

4;O;O0P/Q R!__c"5]4CfCfBgghj	
rG   rC   )r-   zMapping[str, str] | NonereturnNone)rN   rO   )r;   strr<   r   rN   ztuple[Any, str] | None)rN   rD   )rN   rP   )__name__
__module____qualname__r   __annotations__r   r&   r1   r$   r   rF   propertyrM    rG   r0   r   r      sO    4L"ML5Fh_h.iE+iG]:>P 
 
rG   r   )
__future__r   loggingr   configparserr   pathlibr   typingr   r   platformdirsr   r
   collections.abcr   r   r   	getLoggerrQ   r*   r   rV   rG   r0   <module>r_      sE    "  	 %  * ( '!			8	$=
 =
rG   