
    yIf~                       d dl mZ d dlZd dlZd dlmZmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ erd d
lmZmZ d dlmZ d dlmZ d dlmZ  ed          Z ej        d          Z  G d dee	e!                   Z"dS )    )annotationsN)TYPE_CHECKINGTypeVar)ConfigLoadArgsLoaderOverride)filter_for_env)replace)
StrConvert)SetEnv)HandledError)ConfigParserSectionProxy)Factory)Section)ConfigVz(\s)*(?<!\\)#.*c                  h     e Zd ZdZ	 d&d' fdZd(dZed)d            Zd*dZd+d!Z	d,d$Z
d-d%Z xZS ).	IniLoaderzSLoad configuration from an ini section (ini file is a string to string dictionary).Nsectionr   parserr   	overrideslist[Override]core_sectionsection_key
str | NonereturnNonec                    ||p|j                  | _        || _        || _        t	                                          ||           d S N)key_section_proxy_parserr   super__init__)selfr   r   r   r   r   	__class__s         R/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/loader/ini/__init__.pyr%   zIniLoader.__init__   sH     -3;3M'+,N(),,,,,    r!   strconfConfig | Noneenv_namec                F    |                      ||| j        |                   S r    )process_rawr"   )r&   r!   r+   r-   s       r(   load_rawzIniLoader.load_raw)   s"    h0CC0HIIIr)   valuec                   g }|                     d          D ][}|                    d          sDt                              d|          }|                    |                    dd                     \d                    |          }| |}nt          ||          }|                    dd                              dd          S )N
# z\#z\
)split
startswith	_COMMENTSsubappendr
   joinr	   )r+   r-   r1   elementslinepartstrip_commentsfactor_filtereds           r(   r/   zIniLoader.process_raw,   s     !KK%% 	: 	:D??3'' : }}R..UC 8 89998,,<,OO,^XFFO&&tR0088DDDr)   of_typetype[V]factory
Factory[V]rawargsr   r   c                     t          j        |          ot          |t                    }d fd}|s |||          n|}	                     |	||          }
|r|
                    ||           |
S )Nraw_r*   args_r   r   c                    | }nq	 t          | |          }n]# t          $ rP}t          |t                    r |j        j        j        n|j        }d| d d|}t          |          |d }~ww xY w|S )Nzreplace failed in .z with )r
   	Exception
isinstancer   r-   r   r!   )	rI   rJ   replaced	exceptionnamemsgr+   r!   r&   s	         r(   replacerz!IniLoader.build.<locals>.replacerF   s    |;&tT4??HH  ; ; ;!)\:: 49N4J4,00PUP^DNtNNcNNNNC&s++:; Os    
A5AA00A5)rI   r*   rJ   r   r   r*   )inspectisclass
issubclassr   touse_replacer)r&   r!   rB   rD   r+   rF   rG   delay_replacerS   prepared	converteds   ``  `      r(   buildzIniLoader.build;   s      00PZ5P5P	 	 	 	 	 	 	 	 /<D88C&&&GGHgw77	 	3""8T222r)   set[str]c                N    t          | j                                                  S r    )setr"   keysr&   s    r(   
found_keyszIniLoader.found_keysZ   s    4&++--...r)   rQ   SectionProxy | Nonec                T    | j                             |          r| j         |         S d S r    )r#   has_section)r&   rQ   s     r(   get_sectionzIniLoader.get_section]   s,    <##D)) 	&<%%tr)   c                J    | j         j         d| j        j         d| j        dS )Nz	(section=z, overrides=))r'   __name___sectionr!   r   ra   s    r(   __repr__zIniLoader.__repr__c   s/    .)ffDM4EffSWSaffffr)   r    )r   r   r   r   r   r   r   r   r   r   r   r   )r!   r*   r+   r,   r-   r   r   r*   )r+   r,   r-   r   r1   r*   r   r*   )r!   r*   rB   rC   rD   rE   r+   r,   rF   r*   rG   r   r   r   )r   r]   )rQ   r*   r   rc   )r   r*   )ri   
__module____qualname____doc__r%   r0   staticmethodr/   r\   rb   rf   rk   __classcell__)r'   s   @r(   r   r      s        ]] #'- - - - - - -J J J J E E E \E   >/ / / /   g g g g g g g gr)   r   )#
__future__r   rT   retypingr   r   tox.config.loader.apir   r   r   tox.config.loader.ini.factorr	   tox.config.loader.ini.replacer
   tox.config.loader.str_convertr   tox.config.set_envr   
tox.reportr   configparserr   r   tox.config.loader.convertr   tox.config.loader.sectionr   tox.config.mainr   r   compiler9   r*   r    r)   r(   <module>r      s|   " " " " " "  				 ) ) ) ) ) ) ) ) B B B B B B B B B B 7 7 7 7 7 7 1 1 1 1 1 1 4 4 4 4 4 4 % % % % % % # # # # # # '77777777111111111111&&&&&&GCLLBJ)**	Kg Kg Kg Kg Kg
F3K Kg Kg Kg Kg Kgr)   