§
    0›jÀ  ã                  ó(  — d Z 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
 ddlmZmZ ddlmZ ddlmZmZmZ dd	lmZmZ  ee¦  «        Zej        d
k    rddlZdZn ed¦  «        \  ZZ G d„ de¦  «        Z e
d¦  «        Z G d„ d¦  «        ZdS )z*TOML configuration support for coverage.pyé    )ÚannotationsN)ÚCallableÚIterable)ÚAnyÚTypeVar)ÚconfigÚenv)ÚConfigError)Úimport_third_partyÚisolate_moduleÚsubstitute_variables)ÚTConfigSectionOutÚTConfigValueOut)é   é   r   Úalphaé   TÚtomlic                  ó   — e Zd ZdZdS )ÚTomlDecodeErrorz>An exception class that exists even when toml isn't installed.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úR/home/lighthouse/health/venv/lib64/python3.11/site-packages/coverage/tomlconfig.pyr   r      s   € € € € € ØHÐHà€Dr   r   ÚTWantc                  óª   — e Zd ZdZd/d„Zd0d
„Zd1d„Zd2d„Zd3d„Zd4d„Z	d5d„Z
d6d„Zd7d„Zd8d„Zd3d„Zd9d#„Zd4d$„Zd:d%„Zd;d'„Zd<d(„Zd<d)„Zd=d+„Zd>d-„Zd.S )?ÚTomlConfigParserz:TOML file reading with the interface of HandyConfigParser.Úour_fileÚboolÚreturnÚNonec                ó"   — || _         i | _        d S ©N)r!   Údata)Úselfr!   s     r   Ú__init__zTomlConfigParser.__init__-   s   € Ø ˆŒØ$&ˆŒ	ˆ	ˆ	r   Ú	filenamesúIterable[str]ú	list[str]c                óp  — t          |t          t          t          j        f¦  «        sJ ‚t          j        |¦  «        }	 t          |d¬¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   n# t          $ r g cY S w xY wt          rR	 t          j        |¦  «        | _        n4# t          j        $ r"}t          t          |¦  «        ¦  «        |‚d }~ww xY w|gS t          j        d|t          j        ¬¦  «        }| j        s|r$d}t'          |                     |¦  «        ¦  «        ‚g S )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(   r*   ÚfilenameÚfpÚ	toml_textÚerrÚhas_tomlÚmsgs           r   r7   zTomlConfigParser.read1   s|  € õ ˜)¥e­Sµ"´+Ð%>Ñ?Ô?Ð?Ð?Ð?Ý”9˜YÑ'Ô'ˆð	Ý�h¨Ð1Ñ1Ô1ð &°RØŸGšG™IœI�	ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &øøåð 	ð 	ð 	ØˆIˆIˆIð	øøøåð 	ð9Ý#œM¨)Ñ4Ô4�”	�	øÝÔ*ð 9ð 9ð 9Ý%¥c¨#¡h¤hÑ/Ô/°SÐ8øøøøð9øøøà�:Ðå”yÐ!;¸YÍbÌlÐ[Ñ[Ô[ˆHØŒ}ð 8 ð 8àW�Ý! #§*¢*¨XÑ"6Ô"6Ñ7Ô7Ð7ØˆIsM   ¿A= ÁA1Á%A= Á1A5Á5A= Á8A5Á9A= Á=BÂBÂB1 Â1C"Ã CÃC"Úsectionr2   ú+tuple[str | None, TConfigSectionOut | None]c                ó   — dg}| j         r|                     d¦  «         |D ]W}||z   }|                     d¦  «        }	 | j        |d                  }|dd…         D ]
}||         }Œn# t          $ r Y ŒRw xY w ndS ||fS )aC  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)r!   ÚappendÚsplitr'   ÚKeyError)r(   rG   ÚprefixesÚprefixÚreal_sectionÚpartsr'   Úparts           r   Ú_get_sectionzTomlConfigParser._get_sectionJ   sÅ   € ð %Ð%ˆØŒ=ð 	 Ø�OŠO˜BÑÔÐØð 	ð 	ˆFØ! GÑ+ˆLØ ×&Ò& sÑ+Ô+ˆEðØ”y  q¤Ô*�Ø! ! " "œIð &ð &�DØ œ:�D�Dð&øåð ð ð Ø�ðøøøàˆEà�:Ø˜TÐ!Ð!s   ¿(A(Á(
A5Á4A5Úoptionútuple[str, TConfigValueOut]c                óÆ   — |                       |¦  «        \  }}|€t          d|›�¦  «        ‚|€J ‚	 ||         }n$# t          $ r t          d|›d|›�¦  «        d‚w xY w||fS )z;Like .get, but returns the real section name and the value.NúNo section: z
No option z in section: )rU   r
   rO   )r(   rG   rV   Únamer'   Úvalues         r   Ú_getzTomlConfigParser._getg   s�   € à×&Ò& wÑ/Ô/‰
ˆˆdØˆ<ÝÐ8¨WÐ8Ð8Ñ9Ô9Ð9ØÐÐÐð	VØ˜”LˆEˆEøÝð 	Vð 	Vð 	VÝÐJ¨6ÐJÐJÀ$ÐJÐJÑKÔKÐQUÐUð	Vøøøà�Uˆ{Ðs	   ²; »!Ar   c                óš   — |                       ||¦  «        \  }}t          |t          ¦  «        rt          |t          j        ¦  «        }||fS )z Get a single-valued option.

        Performs environment substitution if the value is a string. Other types
        will be converted later as needed.
        )r\   r0   r2   r   r3   Úenviron©r(   rG   rV   rZ   r[   s        r   Ú_get_singlezTomlConfigParser._get_singles   sH   € ð —i’i ¨Ñ0Ô0‰ˆˆeÝ�e�SÑ!Ô!ð 	<Ý(¨µ´
Ñ;Ô;ˆEØ�Uˆ{Ðr   c                óB   — |                       |¦  «        \  }}|€dS ||v S )NF©rU   )r(   rG   rV   Ú_r'   s        r   Ú
has_optionzTomlConfigParser.has_option~   s-   € Ø×#Ò# GÑ,Ô,‰ˆˆ4Øˆ<Ø�5Ø˜ˆ~Ðr   ú
str | Nonec                ó6   — |                       |¦  «        \  }}|S r&   rb   ©r(   rG   rZ   rc   s       r   rR   zTomlConfigParser.real_section„   s   € Ø×#Ò# GÑ,Ô,‰ˆˆaØˆr   c                óP   — |                       |¦  «        \  }}t          |¦  «        S r&   )rU   r"   rg   s       r   Úhas_sectionzTomlConfigParser.has_sectionˆ   s%   € Ø×#Ò# GÑ,Ô,‰ˆˆaÝ�D‰zŒzÐr   c                óœ   — |                       |¦  «        \  }}|€t          d|›�¦  «        ‚t          |                     ¦   «         ¦  «        S )NrY   )rU   r
   ÚlistÚkeys©r(   rG   rc   r'   s       r   ÚoptionszTomlConfigParser.optionsŒ   sK   € Ø×#Ò# GÑ,Ô,‰ˆˆ4Øˆ<ÝÐ8¨WÐ8Ð8Ñ9Ô9Ð9Ý�D—I’I‘K”KÑ Ô Ð r   r   c                ó:   — |                       |¦  «        \  }}|pi S r&   rb   rm   s       r   Úget_sectionzTomlConfigParser.get_section’   s#   € Ø×#Ò# GÑ,Ô,‰ˆˆ4Øˆz�rÐr   c                ó8   — |                       ||¦  «        \  }}|S r&   )r`   ©r(   rG   rV   rc   r[   s        r   ÚgetzTomlConfigParser.get–   s    € Ø×#Ò# G¨VÑ4Ô4‰ˆˆ5Øˆr   r[   Útype_útype[TWant]Ú	converterúCallable[[Any], TWant] | NoneÚ	type_descr   c                óþ   — t          ||¦  «        r|S t          |t          ¦  «        r<|�:	  ||¦  «        S # t          $ r!}t          d|› d|› d|› d|›�¦  «        |‚d}~ww xY wt          d|› d|› d|› d|›�¦  «        ‚)z�Check 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 )r0   r2   Ú	ExceptionÚ
ValueError)r(   rG   rV   r[   rt   rv   rx   Úes           r   Ú_check_typezTomlConfigParser._check_typeš   sÖ   € õ �e˜UÑ#Ô#ð 	ØˆLÝ�e�SÑ!Ô!ð 	 iÐ&;ðØ �y Ñ'Ô'Ð'øÝð ð ð Ý Ø\˜wÐ\Ð\¨Ð\Ð\ÀiÐ\Ð\ÐSXÐ\Ð\ñô àðøøøøðøøøõ ØG�wÐGÐG ÐGÐG°ÐGÐG¸eÐGÐGñ
ô 
ð 	
s   «
6 ¶
A!Á AÁA!c                ó†   — |                       ||¦  «        \  }}dddœ}|                      |||t          |j        d¦  «        S )NTF)ÚtrueÚfalsez	a boolean)r`   r~   r"   Ú__getitem__)r(   rG   rV   rZ   r[   Úbool_stringss         r   Ú
getbooleanzTomlConfigParser.getboolean´   sJ   € Ø×&Ò& w°Ñ7Ô7‰ˆˆeØ $¨uÐ5Ð5ˆØ×Ò  f¨eµT¸<Ô;SÐU`ÑaÔaÐar   c                ó\   — |                       ||¦  «        \  }}t          j        |¦  «        S r&   )r`   r   Úprocess_file_valuerr   s        r   ÚgetfilezTomlConfigParser.getfile¹   s,   € Ø×#Ò# G¨VÑ4Ô4‰ˆˆ5ÝÔ(¨Ñ/Ô/Ð/r   útuple[str, list[str]]c                ó’   — |                       ||¦  «        \  }}|                      |||t          dd¦  «        }d„ |D ¦   «         }||fS )zJGet a list of strings, substituting environment variables in the elements.Nza listc                óB   — g | ]}t          |t          j        ¦  «        ‘ŒS r   )r   r3   r^   )Ú.0r[   s     r   ú
<listcomp>z.TomlConfigParser._get_list.<locals>.<listcomp>Á   s%   € ÐNÐNÐN¸eÕ& u­b¬jÑ9Ô9ÐNÐNÐNr   )r\   r~   rk   ©r(   rG   rV   rZ   Úvaluess        r   Ú	_get_listzTomlConfigParser._get_list½   sS   € à—y’y ¨&Ñ1Ô1‰ˆˆfØ×!Ò! $¨°½¸dÀHÑMÔMˆØNÐNÀvÐNÑNÔNˆØ�Vˆ|Ðr   c                ó8   — |                       ||¦  «        \  }}|S r&   )r�   )r(   rG   rV   rc   rŽ   s        r   ÚgetlistzTomlConfigParser.getlistÄ   s   € Ø—N’N 7¨FÑ3Ô3‰	ˆˆ6Øˆr   c                ó`   — |                       ||¦  «        \  }}t          j        |||¦  «        S r&   )r�   r   Úprocess_regexlistr�   s        r   ÚgetregexlistzTomlConfigParser.getregexlistÈ   s.   € Ø—~’~ g¨vÑ6Ô6‰ˆˆfÝÔ'¨¨f°fÑ=Ô=Ð=r   Úintc                ó|   — |                       ||¦  «        \  }}|                      |||t          t          d¦  «        S )Nz
an integer)r`   r~   r•   r_   s        r   ÚgetintzTomlConfigParser.getintÌ   s9   € Ø×&Ò& w°Ñ7Ô7‰ˆˆeØ×Ò  f¨eµS½#¸|ÑLÔLÐLr   Úfloatc                óÄ   — |                       ||¦  «        \  }}t          |t          ¦  «        rt          |¦  «        }|                      |||t          t          d¦  «        S )Nza float)r`   r0   r•   r˜   r~   r_   s        r   ÚgetfloatzTomlConfigParser.getfloatÐ   sV   € Ø×&Ò& w°Ñ7Ô7‰ˆˆeÝ�e�SÑ!Ô!ð 	!Ý˜%‘L”LˆEØ×Ò  f¨eµU½EÀ9ÑMÔMÐMr   N)r!   r"   r#   r$   )r*   r+   r#   r,   )rG   r2   r#   rH   )rG   r2   rV   r2   r#   rW   )rG   r2   rV   r2   r#   r   )rG   r2   rV   r2   r#   r"   )rG   r2   r#   re   )rG   r2   r#   r"   )rG   r2   r#   r,   )rG   r2   r#   r   )rG   r2   rV   r2   r[   r   rt   ru   rv   rw   rx   r2   r#   r   )rG   r2   rV   r2   r#   r2   )rG   r2   rV   r2   r#   rˆ   )rG   r2   rV   r2   r#   r,   )rG   r2   rV   r2   r#   r•   )rG   r2   rV   r2   r#   r˜   )r   r   r   r   r)   r7   rU   r\   r`   rd   rR   ri   rn   rp   rs   r~   r„   r‡   r�   r‘   r”   r—   rš   r   r   r   r    r    &   s¤  € € € € € ØDÐDð'ð 'ð 'ð 'ðð ð ð ð2"ð "ð "ð "ð:
ð 
ð 
ð 
ð	ð 	ð 	ð 	ðð ð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ðð ð ð ðð ð ð ð
ð 
ð 
ð 
ð4bð bð bð bð
0ð 0ð 0ð 0ðð ð ð ðð ð ð ð>ð >ð >ð >ðMð Mð Mð MðNð Nð Nð Nð Nð Nr   r    )r   Ú
__future__r   r3   r=   Úcollections.abcr   r   Útypingr   r   Úcoverager   r	   Úcoverage.exceptionsr
   Úcoverage.miscr   r   r   Úcoverage.typesr   r   Ú	PYVERSIONr:   r9   r{   r   r   r    r   r   r   ú<module>r£      s†  ðð 1Ð 0à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø +Ð +Ð +Ð +Ð +Ð +Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à€^�BÑÔ€à„=Ð*Ò*Ð*Ø€N€N€Nà€K€Kð .Ð-¨gÑ6Ô6Ñ€Gˆ[ð	ð 	ð 	ð 	ð 	�iñ 	ô 	ð 	ð 	ˆ�ÑÔ€ðnNð nNð nNð nNð nNñ nNô nNð nNð nNð nNr   