ó
    Ð]jÀ  ã                  ó  • S r SSKJr  SSKrSSKrSSKJrJr  SSK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)ÚCallableÚIterable)ÚAnyÚ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   ó    ÚP/home/mande/repo/quber/.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ù   € ô ˜)¤e¬S´"·+±+Ð%>×?Ñ?Ð?Ð?Ü—9’9˜YÓ'ˆð	Ü�h¨Ò1°RØŸG™G›I�	÷ 2÷ Š;ð9Ü#ŸMšM¨)Ó4�”	ð �:Ðä—y’yÐ!;¸YÌbÏlÉlÑ[ˆHØ�}�}¦àW�Ü! #§*¡*¨XÓ"6Ó7Ð7ØˆI÷! 2Õ1ûäó 	ØŠIð	ûô
 ×*Ñ*ó 9Ü%¤c¨#£hÓ/°SÐ8ûð9úsH   Á
C< ÁC+ÁC< Á3D Ã+
C9Ã5C< Ã9C< Ã<DÄ
DÄD<Ä"D7Ä7D<c                óö   • S/nU R                   (       a  UR                  S5        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)r'   ÚappendÚsplitr(   ÚKeyError)r)   ÚsectionÚprefixesÚprefixÚreal_sectionÚpartsr(   Úparts           r    Ú_get_sectionÚTomlConfigParser._get_sectionJ   s˜   € ð %Ð%ˆØ�=�=Ø�O‰O˜BÔÛˆFØ!Ñ+ˆLØ ×&Ñ& sÓ+ˆEðØ—y‘y  q¡Ñ*�Ø! ! "›I�DØ™:’Dñ &ð ð Ð!Ð!ñ ð øô	 ó Úðús   Á"A*Á*
A8Á7A8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: )rU   r
   rN   )r)   rO   ÚoptionÚnamer(   Úvalues         r    Ú_getÚTomlConfigParser._getg   s|   € à×&Ñ& wÓ/‰
ˆØ‰<Ü ¨W©KÐ8Ó9Ð9ØÑÐÐð	VØ‘LˆEð ˆ{Ðøô ó 	VÜ 
¨6©*°MÀ$ÁÐJÓKÐQUÐUð	Vús	   ¬3 ³Ac                óŒ   • U R                  X5      u  p4[        U[        5      (       a  [        U[        R
                  5      nX44$ )zˆGet a single-valued option.

Performs environment substitution if the value is a string. Other types
will be converted later as needed.
)r\   r/   r1   r   r2   Úenviron©r)   rO   rY   rZ   r[   s        r    Ú_get_singleÚTomlConfigParser._get_singles   s9   € ð —i‘i Ó0‰ˆÜ�eœS×!Ñ!Ü(¨´·
±
Ó;ˆEØˆ{Ðr   c                ó8   • U R                  U5      u  p4Uc  gX$;   $ )NF©rU   )r)   rO   rY   Ú_r(   s        r    Ú
has_optionÚTomlConfigParser.has_option~   s$   € Ø×#Ñ# GÓ,‰ˆØ‰<ØØ‰~Ðr   c                ó,   • U R                  U5      u  p#U$ r&   rd   ©r)   rO   rZ   re   s       r    rR   ÚTomlConfigParser.real_section„   s   € Ø×#Ñ# GÓ,‰ˆØˆr   c                ó>   • U R                  U5      u  p#[        U5      $ r&   )rU   Úboolri   s       r    Úhas_sectionÚTomlConfigParser.has_sectionˆ   s   € Ø×#Ñ# GÓ,‰ˆÜ�D‹zÐr   c                ó~   • U R                  U5      u  p#Uc  [        SU< 35      e[        UR                  5       5      $ )NrX   )rU   r
   ÚlistÚkeys©r)   rO   re   r(   s       r    ÚoptionsÚTomlConfigParser.optionsŒ   s<   € Ø×#Ñ# GÓ,‰ˆØ‰<Ü ¨W©KÐ8Ó9Ð9Ü�D—I‘I“KÓ Ð r   c                ó>   • U R                  U5      u  p#U=(       d    0 $ r&   rd   rr   s       r    Úget_sectionÚTomlConfigParser.get_section’   s   € Ø×#Ñ# GÓ,‰ˆØ�z�rÐr   c                ó,   • U R                  X5      u  p4U$ r&   )ra   ©r)   rO   rY   re   r[   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)   rO   rY   r[   Útype_Ú	converterÚ	type_descÚes           r    Ú_check_typeÚTomlConfigParser._check_typeš   s£   € ô �e×#Ñ#ØˆLÜ�eœS×!Ñ! iÑ&;ðÙ  Ó'Ð'ô
 Ø�w�i˜q  ¨°°¸2¸e¹YÐGó
ð 	
øô	 ó Ü Ø˜w˜i q¨¨Ð0EÀiÀ[ÐPRÐSXÑR[Ð\óàðûðú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)ra   r„   rl   Ú__getitem__)r)   rO   rY   rZ   r[   Úbool_stringss         r    Ú
getbooleanÚTomlConfigParser.getboolean´   s>   € Ø×&Ñ& wÓ7‰ˆØ $¨uÑ5ˆØ×Ñ ¨e´T¸<×;SÑ;SÐU`ÓaÐar   c                óT   • U R                  X5      u  p4[        R                  " U5      $ r&   )ra   r   Úprocess_file_valuery   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)r\   r„   rp   r   r2   r_   )r)   rO   rY   rZ   Úvaluesr[   s         r    Ú	_get_listÚTomlConfigParser._get_list½   sX   € à—y‘y Ó1‰ˆØ×!Ñ! $°¼¸dÀHÓMˆÙGMÓNÂv¸eÔ& u¬b¯j©jÖ9ÁvˆÐNØˆ|Ðùò Os   ±$Ac                ó,   • U R                  X5      u  p4U$ r&   )r“   )r)   rO   rY   re   r’   s        r    ÚgetlistÚTomlConfigParser.getlistÄ   s   € Ø—N‘N 7Ó3‰	ˆØˆr   c                óV   • U R                  X5      u  p4[        R                  " X2U5      $ r&   )r“   r   Úprocess_regexlist)r)   rO   rY   rZ   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)ra   r„   Úintr`   s        r    ÚgetintÚTomlConfigParser.getintÌ   s-   € Ø×&Ñ& wÓ7‰ˆØ×Ñ ¨e´S¼#¸|ÓLÐLr   c                ó¢   • U R                  X5      u  p4[        U[        5      (       a  [        U5      nU R	                  X2U[        [        S5      $ )Nza float)ra   r/   r�   Úfloatr„   r`   s        r    ÚgetfloatÚTomlConfigParser.getfloatÐ   sC   € Ø×&Ñ& wÓ7‰ˆÜ�eœS×!Ñ!Ü˜%“LˆEØ×Ñ ¨e´U¼EÀ9ÓMÐMr   )r(   r'   N)r'   rl   ÚreturnÚNone)r@   zIterable[str]r¤   ú	list[str])rO   r1   r¤   z+tuple[str | None, TConfigSectionOut | None])rO   r1   rY   r1   r¤   ztuple[str, TConfigValueOut])rO   r1   rY   r1   r¤   r   )rO   r1   rY   r1   r¤   rl   )rO   r1   r¤   z
str | None)rO   r1   r¤   rl   )rO   r1   r¤   r¦   )rO   r1   r¤   r   )rO   r1   rY   r1   r[   r   r€   ztype[TWant]r�   zCallable[[Any], TWant] | Noner‚   r1   r¤   r!   )rO   r1   rY   r1   r¤   r1   )rO   r1   rY   r1   r¤   ztuple[str, list[str]])rO   r1   rY   r1   r¤   r¦   )rO   r1   rY   r1   r¤   r�   )rO   r1   rY   r1   r¤   r¡   )r   r   r   r   r   r*   r6   rU   r\   ra   rf   rR   rm   rs   rv   rz   r„   r‹   r�   r“   r–   rš   rž   r¢   r   r   r   r    r#   r#   &   s«   † ÙDô'ôô2"ô:
ô	ôôôô!ôôð
àð
ð ð
ð ð	
ð
 ð
ð 1ð
ð ð
ð 
ô
ô4bô
0ôôô>ôM÷Nr   r#   )r   Ú
__future__r   r2   r<   Úcollections.abcr   r   Útypingr   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ô 	ñ 	�Ó€÷nNò nNr   