
    yIf_                        d Z 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 dd	lmZ dd
lmZ  e ed                    dz  Z G d d          ZdS )z1Provides configuration values from tox.ini files.    )annotationsN)ConfigParser)Path)AnyClassVar)user_config_dir)ConfigLoadArgs)	IniLoader)COREtoxz
config.inic                  Z    e Zd ZU dZddddZded<   dd
ZddZddZe	dd            Z
dS )	IniConfigTOX_USER_CONFIG_FILEzfailed to parseactivemissing)NTFz ClassVar[dict[bool | None, str]]STATEreturnNonec                   t           j                            | j        d           }|d u| _        t          ||nt                    | _        i | _        | j        	                                | _
        d | _        | j
        r| j                                        | _        	 t          d           }| j                                        5 }|                    |           d d d            n# 1 swxY w Y   |                    t"          j                  | _        | j        r$t)          t"          |g t"                    | _        d S d S # t*          $ r(}t-          j        d||           d | _
        Y d }~d S d }~ww xY wd S )N)interpolation)	overridescore_sectionz(failed to read config file %s because %r)osenvirongetTOX_CONFIG_FILE_ENV_VAR
is_env_varr   DEFAULT_CONFIG_FILEconfig_file_cacheexistshas_config_fileiniabsoluter   open	read_filehas_sectionr   keyhas_tox_sectionr
   	Exceptionloggingerror)selfr   parserfile_handler	exceptions        F/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/cli/ini.py__init__zIniConfig.__init__   s   jnnT%A4HH%T1{/FL_``8:,0,<,C,C,E,E%) 	,#/88::D	,%D999%**,, 3$$\2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3'-'9'9$('C'C$' X(vRVWWWDHHHX X , , ,H+W`aaa'+$$$$$$$,	, 	,s=   )E C)E )C--E 0C-1AE 
E7E22E7r(   strof_type	type[Any]r   c                r   ||f}|| j         v r| j         |         }n	 | j        d }nBd}t          |gt          j        d           }| j                            ||d d |          }||f}nC# t          $ r d }Y n5t          $ r)}t          j	        d| j
        |||           d }Y d }~nd }~ww xY w|| j         |<   |S )Nfile)chainnameenv_name)r4   conffactoryargsz#%s key %s as type %r failed with %r)r    r#   r	   r   prefixloadKeyErrorr*   r+   warningr   )	r-   r(   r4   	cache_keyresultsourcer=   valuer0   s	            r1   r   zIniConfig.get-   s    L	##[+FF8#!FF#F)DKRVWWWD HMM#wTSW^bMccE"F]F       EtGWY\^egpqqq "(Is   AA* *B*8	B*B%%B*boolc                R    t          | j                  ot          | j                  S )N)rF   r"   r)   r-   s    r1   __bool__zIniConfig.__bool__B   s#    D())Hd43G.H.HH    c           
         t           j         dt          | 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   linesepr3   r   r   r"   r   r   rH   s    r1   epilogzIniConfig.epilogE   s}     z c cs4+;'<'< c cDL`Aa c c!_4cc"c cCGC_c c c	
rJ   N)r   r   )r(   r3   r4   r5   r   r   )r   rF   )r   r3   )__name__
__module____qualname__r   r   __annotations__r2   r   rI   propertyrQ    rJ   r1   r   r      s         45Fh_h.i.iEiiii, , , ,*   *I I I I 
 
 
 X
 
 
rJ   r   )__doc__
__future__r   r+   r   configparserr   pathlibr   typingr   r   platformdirsr   tox.config.loader.apir	   tox.config.loader.inir
   tox.config.source.ini_sectionr   r   r   rW   rJ   r1   <module>ra      s   7 7 " " " " " "  				 % % % % % %                       ( ( ( ( ( ( 0 0 0 0 0 0 + + + + + + . . . . . .d??51122\A 7
 7
 7
 7
 7
 7
 7
 7
 7
 7
rJ   