
     h                       S r SSKJr  SSKrSSKrSSKJr  SSKJrJ	r	J
r
  SSKJrJr  SSKJr  SSKJrJrJr  SS	KJrJr  \" \5      r\R.                  S
:  a  SSKrSrO\" S5      u  rr " S S\5      r\
" S5      r " S S5      rg)z*TOML configuration support for coverage.py    )annotationsN)Iterable)AnyCallableTypeVar)configenv)ConfigError)import_third_partyisolate_modulesubstitute_variables)TConfigSectionOutTConfigValueOut)      r   alpha   Ttomlic                      \ rS rSrSrSrg)TomlDecodeError   z>An exception class that exists even when toml isn't installed. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       q/root/racknerd_01/codex-conversation/amazon-q-terraform/.venv/lib/python3.13/site-packages/coverage/tomlconfig.pyr   r      s    Hr   r   TWantc                      \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrS S jrS!S jrSS jr              S"S jrSS jrS#S jrS$S jrS%S jrS%S jrS&S jrS'S jrSrg)(TomlConfigParser&   z:TOML file reading with the interface of HandyConfigParser.c                    Xl         0 U l        g N)our_filedata)selfr'   s     r    __init__TomlConfigParser.__init__-   s     $&	r   c                ~   [        U[        [        [        R                  45      (       d   e[        R
                  " U5      n [        USS9 nUR                  5       nS S S 5        [        (       a   [        R                  " W5      U l        U/$ [        R                   " SW[        R"                  S9nU R$                  (       d  U(       a  Sn['        UR)                  U5      5      e/ $ ! , (       d  f       N= f! [         a    / s $ f = f! [        R                   a  n[        [        U5      5      UeS nAff = f)Nzutf-8)encodingz^\[tool\.coverage(\.|]))flagsz?Can't read {!r} without TOML support. Install with [toml] extra)
isinstancebytesstrosPathLikefspathopenreadOSErrorhas_tomllibtomllibloadsr(   TOMLDecodeErrorr   research	MULTILINEr'   r
   format)r)   	filenamesfilenamefp	toml_texterrhas_tomlmsgs           r    r6   TomlConfigParser.read1   s     )eS"++%>????99Y'	h1RGGI	 2 ;9#MM)4	 :yy!;Ybll[H}}W!#**X"677I! 21 	I	
 ** 9%c#h/S89sH   
C< C+C< 3D +
C95C< 9C< <D
DD<"D77D<c                    S/nU H=  nX1-   nUR                  S5      n U R                  US      nUSS  H  nXg   nM	       XF4$    g! [         a     MO  f = f)a  Get a section from the data.

Arguments:
    section (str): A section name, which can be dotted.

Returns:
    name (str): the actual name of the section that was found, if any,
        or None.
    data (str): the dict of data in the section, or None if not found.

ztool.coverage..r      N)NN)splitr(   KeyError)r)   sectionprefixesprefixreal_sectionpartsr(   parts           r    _get_sectionTomlConfigParser._get_sectionJ   s     %%F!+L &&s+Eyyq*!!"ID:D &  !!  	  s   "A
AAc                    U R                  U5      u  p4Uc  [        SU< 35      eUc   e XB   nX54$ ! [         a    [        SU< SU< 35      Sef = f)z;Like .get, but returns the real section name and the value.NNo section: z
No option z in section: )rS   r
   rL   )r)   rM   optionnamer(   values         r    _getTomlConfigParser._gete   s|    &&w/
<WK899	VLE {  	V
6*M$JKQUU	Vs	   3 Ac                    U R                  X5      u  p4[        U[        5      (       a  [        U[        R
                  5      nX44$ )zGet a single-valued option.

Performs environment substitution if the value is a string. Other types
will be converted later as needed.
)rZ   r/   r1   r   r2   environr)   rM   rW   rX   rY   s        r    _get_singleTomlConfigParser._get_singleq   s9     ii0eS!!(

;E{r   c                8    U R                  U5      u  p4Uc  gX$;   $ )NFrS   )r)   rM   rW   _r(   s        r    
has_optionTomlConfigParser.has_option|   s$    ##G,<~r   c                ,    U R                  U5      u  p#U$ r&   rb   r)   rM   rX   rc   s       r    rP   TomlConfigParser.real_section   s    ##G,r   c                >    U R                  U5      u  p#[        U5      $ r&   )rS   boolrg   s       r    has_sectionTomlConfigParser.has_section   s    ##G,Dzr   c                ~    U R                  U5      u  p#Uc  [        SU< 35      e[        UR                  5       5      $ )NrV   )rS   r
   listkeysr)   rM   rc   r(   s       r    optionsTomlConfigParser.options   s<    ##G,<WK899DIIK  r   c                >    U R                  U5      u  p#U=(       d    0 $ r&   rb   rp   s       r    get_sectionTomlConfigParser.get_section   s    ##G,zrr   c                ,    U R                  X5      u  p4U$ r&   )r_   r)   rM   rW   rc   rY   s        r    getTomlConfigParser.get   s    ##G4r   c                    [        X45      (       a  U$ [        U[        5      (       a  Ub	   U" U5      $ [        SU SU SU SU< 35      e! [         a  n[        SU SU SU SU< 35      UeSnAff = f)zqCheck that `value` has the type we want, converting if needed.

Returns the resulting value of the desired type.
NzOption []z couldn't convert to z: z is not )r/   r1   	Exception
ValueError)r)   rM   rW   rY   type_	converter	type_desces           r    _check_typeTomlConfigParser._check_type   s     e##LeS!!i&; ''
 wiq2eYG
 	
	   wiq0Ei[PRSXR[\s   A 
A4A//A4c                x    U R                  X5      u  p4SSS.nU R                  X2U[        UR                  S5      $ )NTF)truefalsez	a boolean)r_   r   rj   __getitem__)r)   rM   rW   rX   rY   bool_stringss         r    
getbooleanTomlConfigParser.getboolean   s>    &&w7 $u5eT<;S;SU`aar   c                T    U R                  X5      u  p4[        R                  " U5      $ r&   )r_   r   process_file_valuerw   s        r    getfileTomlConfigParser.getfile   s%    ##G4((//r   c                    U R                  X5      u  p4U R                  X2U[        SS5      nU Vs/ s H  n[        U[        R
                  5      PM     nnX44$ s  snf )zJGet a list of strings, substituting environment variables in the elements.Nza list)rZ   r   rn   r   r2   r]   )r)   rM   rW   rX   valuesrY   s         r    	_get_listTomlConfigParser._get_list   sX    yy1!!$dHMGMNve&ubjj9vN| Os   $Ac                ,    U R                  X5      u  p4U$ r&   )r   )r)   rM   rW   rc   r   s        r    getlistTomlConfigParser.getlist   s    NN73	r   c                V    U R                  X5      u  p4[        R                  " X2U5      $ r&   )r   r   process_regexlist)r)   rM   rW   rX   r   s        r    getregexlistTomlConfigParser.getregexlist   s%    ~~g6''f==r   c                b    U R                  X5      u  p4U R                  X2U[        [        S5      $ )Nz
an integer)r_   r   intr^   s        r    getintTomlConfigParser.getint   s-    &&w7eS#|LLr   c                    U R                  X5      u  p4[        U[        5      (       a  [        U5      nU R	                  X2U[        [        S5      $ )Nza float)r_   r/   r   floatr   r^   s        r    getfloatTomlConfigParser.getfloat   sC    &&w7eS!!%LEeUE9MMr   )r(   r'   N)r'   rj   returnNone)r@   zIterable[str]r   	list[str])rM   r1   r   z+tuple[str | None, TConfigSectionOut | None])rM   r1   rW   r1   r   ztuple[str, TConfigValueOut])rM   r1   rW   r1   r   r   )rM   r1   rW   r1   r   rj   )rM   r1   r   z
str | None)rM   r1   r   rj   )rM   r1   r   r   )rM   r1   r   r   )rM   r1   rW   r1   rY   r   r~   ztype[TWant]r   zCallable[[Any], TWant] | Noner   r1   r   r!   )rM   r1   rW   r1   r   r1   )rM   r1   rW   r1   r   ztuple[str, list[str]])rM   r1   rW   r1   r   r   )rM   r1   rW   r1   r   r   )rM   r1   rW   r1   r   r   )r   r   r   r   r   r*   r6   rS   rZ   r_   rd   rP   rk   rq   rt   rx   r   r   r   r   r   r   r   r   r   r   r   r    r#   r#   &   s    D'2"6
	!

 
 	

 
 1
 
 

4b
0>MNr   r#   )r   
__future__r   r2   r<   collections.abcr   typingr   r   r   coverager   r	   coverage.exceptionsr
   coverage.miscr   r   r   coverage.typesr   r   	PYVERSIONr9   r8   r|   r   r!   r#   r   r   r    <module>r      s    1 " 	 	 $ ) )   + R R =B==**K .g6G[	i 	 	lN lNr   