Ë
    oPê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 ddlmZ ddlmZmZ dd	lmZmZ  ee«      Z e
d
«      Z G d„ d«      Zy)z*TOML configuration support for coverage.pyé    )ÚannotationsN)ÚCallableÚIterable)ÚAnyÚTypeVar)Úconfig)ÚConfigError)Úisolate_moduleÚsubstitute_variables)ÚTConfigSectionOutÚTConfigValueOutÚTWantc                  óÄ   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 d d„Zdd„Zd!d„Zd"d„Zd#d„Zd#d„Zd$d„Zd%d„Zy)&ÚTomlConfigParserz:TOML file reading with the interface of HandyConfigParser.c                ó    — || _         i | _        y ©N)Úour_fileÚdata)Úselfr   s     úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/coverage/tomlconfig.pyÚ__init__zTomlConfigParser.__init__!   s   € Ø ˆŒØ$&ˆ�	ó    c                ó<  — t        |t        t        t        j                  f«      sJ ‚t        j
                  |«      }	 t        |d¬«      5 }|j                  «       }d d d «       t        j                  «      | _        |gS # 1 sw Y   Œ&xY w# t        $ r g cY S w xY w)Nzutf-8)Úencoding)Ú
isinstanceÚbytesÚstrÚosÚPathLikeÚfspathÚopenÚreadÚOSErrorÚtomllibÚloadsr   )r   Ú	filenamesÚfilenameÚfpÚ	toml_texts        r   r"   zTomlConfigParser.read%   s‹   € ô ˜)¤e¬S´"·+±+Ð%>Ô?Ð?Ð?Ü—9‘9˜YÓ'ˆð	Ü�h¨Ô1ð &°RØŸG™G›I�	÷&ô —M‘M )Ó,ˆŒ	ØˆzÐ÷&ð &ûäò 	ØŠIð	ús)   ¾B ÁBÁB ÂB
ÂB ÂBÂBc                óê   — dg}| j                   r|j                  d«       |D ]?  }||z   }|j                  d«      }	 | j                  |d      }|dd D ]  }||   }Œ	 	  ||fS  y# t        $ r Y ŒNw xY w)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   ÚsectionÚprefixesÚprefixÚreal_sectionÚpartsr   Úparts           r   Ú_get_sectionzTomlConfigParser._get_section3   s¨   € ð %Ð%ˆØ�=Š=Ø�O‰O˜BÔØò 	ˆFØ! GÑ+ˆLØ ×&Ñ& sÓ+ˆEðØ—y‘y  q¡Ñ*�Ø! ! "˜Iò &�DØ ™:‘Dñ&ð ð ˜TÐ!Ð!ð	ð øô	 ò Ùðús   ½!A&Á&	A2Á1A2c                ó¤   — | j                  |«      \  }}|€t        d|›�«      ‚|€J ‚	 ||   }||fS # t        $ r t        d|›d|›�«      d‚w xY w)z;Like .get, but returns the real section name and the value.NúNo section: z
No option z in section: )r7   r	   r0   )r   r1   ÚoptionÚnamer   Úvalues         r   Ú_getzTomlConfigParser._getP   s‚   € à×&Ñ& wÓ/‰
ˆˆdØˆ<Ü ¨W¨KÐ8Ó9Ð9ØÐÐÐð	VØ˜‘LˆEð �Uˆ{Ðøô ò 	VÜ 
¨6¨*°MÀ$ÀÐJÓKÐQUÐUð	Vús	   ª3 ³Ac                óˆ   — | j                  ||«      \  }}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=   r   r   r   r   Úenviron©r   r1   r:   r;   r<   s        r   Ú_get_singlezTomlConfigParser._get_single\   s<   € ð —i‘i ¨Ó0‰ˆˆeÜ�eœSÔ!Ü(¨´·
±
Ó;ˆEØ�Uˆ{Ðr   c                ó8   — | j                  |«      \  }}|€y||v S )NF©r7   )r   r1   r:   Ú_r   s        r   Ú
has_optionzTomlConfigParser.has_optiong   s(   € Ø×#Ñ# GÓ,‰ˆˆ4Øˆ<ØØ˜ˆ~Ðr   c                ó.   — | j                  |«      \  }}|S r   rC   ©r   r1   r;   rD   s       r   r4   zTomlConfigParser.real_sectionm   s   € Ø×#Ñ# GÓ,‰ˆˆaØˆr   c                ó@   — | j                  |«      \  }}t        |«      S r   )r7   ÚboolrG   s       r   Úhas_sectionzTomlConfigParser.has_sectionq   s    € Ø×#Ñ# GÓ,‰ˆˆaÜ�D‹zÐr   c                ó|   — | j                  |«      \  }}|€t        d|›�«      ‚t        |j                  «       «      S )Nr9   )r7   r	   ÚlistÚkeys©r   r1   rD   r   s       r   ÚoptionszTomlConfigParser.optionsu   s>   € Ø×#Ñ# GÓ,‰ˆˆ4Øˆ<Ü ¨W¨KÐ8Ó9Ð9Ü�D—I‘I“KÓ Ð r   c                ó6   — | j                  |«      \  }}|xs i S r   rC   rN   s       r   Úget_sectionzTomlConfigParser.get_section{   s    € Ø×#Ñ# GÓ,‰ˆˆ4ØŠz�rÐr   c                ó0   — | j                  ||«      \  }}|S r   )rA   )r   r1   r:   rD   r<   s        r   ÚgetzTomlConfigParser.get   s   € Ø×#Ñ# G¨VÓ4‰ˆˆ5Øˆr   c                óÔ   — t        ||«      r|S t        |t        «      r|�		  ||«      S t        d|› d|› d|› d|›�«      ‚# t        $ r}t        d|› d|› d|› d|›�«      |‚d}~ww xY w)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 )r   r   Ú	ExceptionÚ
ValueError)r   r1   r:   r<   Útype_Ú	converterÚ	type_descÚes           r   Ú_check_typezTomlConfigParser._check_typeƒ   sŸ   € ô �e˜UÔ#ØˆLÜ�eœSÔ! iÐ&;ðÙ  Ó'Ð'ô
 Ø�w�i˜q  ¨°°¸2¸e¸YÐGó
ð 	
øô	 ò Ü Ø˜w˜i q¨¨Ð0EÀiÀ[ÐPRÐSXÐR[Ð\óàðûðús   ¢A Á	A'Á
A"Á"A'c                ó~   — | j                  ||«      \  }}dddœ}| j                  |||t        |j                  d«      S )NTF)ÚtrueÚfalsez	a boolean)rA   r\   rI   Ú__getitem__)r   r1   r:   r;   r<   Úbool_stringss         r   Ú
getbooleanzTomlConfigParser.getboolean�   sD   € Ø×&Ñ& w°Ó7‰ˆˆeØ $¨uÑ5ˆØ×Ñ  f¨e´T¸<×;SÑ;SÐU`ÓaÐar   c                óŠ   — | j                  ||«      \  }}| j                  |||t        d d«      }t        j                  |«      S )Nza string)rA   r\   r   r   Úprocess_file_valuer@   s        r   ÚgetfilezTomlConfigParser.getfile¢   sC   € Ø×&Ñ& w°Ó7‰ˆˆeØ× Ñ   v¨u´c¸4ÀÓLˆÜ×(Ñ(¨Ó/Ð/r   c                óð   — | j                  ||«      \  }}| j                  |||t        dd«      }|D �cg c]4  }t        | j                  |||t        dd«      t
        j                  «      ‘Œ6 }}||fS c c}w )zJGet a list of strings, substituting environment variables in the elements.Nza listza list of strings)r=   r\   rL   r   r   r   r?   )r   r1   r:   r;   Úvaluesr<   s         r   Ú	_get_listzTomlConfigParser._get_list§   s‡   € à—y‘y ¨&Ó1‰ˆˆfØ×!Ñ! $¨°¼¸dÀHÓMˆð  ö
ð
 ô	 !Ø× Ñ   v¨u´c¸4ÐATÓUÜ—
‘
õð
ˆð 
ð �Vˆ|Ðùò
s   ´9A3c                ó0   — | j                  ||«      \  }}|S r   )rh   )r   r1   r:   rD   rg   s        r   ÚgetlistzTomlConfigParser.getlist´   s   € Ø—N‘N 7¨FÓ3‰	ˆˆ6Øˆr   c                óZ   — | j                  ||«      \  }}t        j                  |||«      S r   )rh   r   Úprocess_regexlist)r   r1   r:   r;   rg   s        r   ÚgetregexlistzTomlConfigParser.getregexlist¸   s+   € Ø—~‘~ g¨vÓ6‰ˆˆfÜ×'Ñ'¨¨f°fÓ=Ð=r   c                óh   — | j                  ||«      \  }}| j                  |||t        t        d«      S )Nz
an integer)rA   r\   Úintr@   s        r   ÚgetintzTomlConfigParser.getint¼   s3   € Ø×&Ñ& w°Ó7‰ˆˆeØ×Ñ  f¨e´S¼#¸|ÓLÐLr   c                óž   — | j                  ||«      \  }}t        |t        «      rt        |«      }| j	                  |||t        t        d«      S )Nza float)rA   r   ro   Úfloatr\   r@   s        r   ÚgetfloatzTomlConfigParser.getfloatÀ   sF   € Ø×&Ñ& w°Ó7‰ˆˆeÜ�eœSÔ!Ü˜%“LˆEØ×Ñ  f¨e´U¼EÀ9ÓMÐMr   N)r   rI   ÚreturnÚNone)r&   zIterable[str]rt   ú	list[str])r1   r   rt   z+tuple[str | None, TConfigSectionOut | None])r1   r   r:   r   rt   ztuple[str, TConfigValueOut])r1   r   r:   r   rt   r   )r1   r   r:   r   rt   rI   )r1   r   rt   z
str | None)r1   r   rt   rI   )r1   r   rt   rv   )r1   r   rt   r   )r1   r   r:   r   r<   r   rX   ztype[TWant]rY   zCallable[[Any], TWant] | NonerZ   r   rt   r   )r1   r   r:   r   rt   r   )r1   r   r:   r   rt   ztuple[str, list[str]])r1   r   r:   r   rt   rv   )r1   r   r:   r   rt   ro   )r1   r   r:   r   rt   rr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r7   r=   rA   rE   r4   rJ   rO   rQ   rS   r\   rb   re   rh   rj   rm   rp   rs   © r   r   r   r      s«   „ ÙDó'óó"ó:
ó	óóóó!óóð
àð
ð ð
ð ð	
ð
 ð
ð 1ð
ð ð
ð 
ó
ó4bó
0ó
óó>óMôNr   r   )rz   Ú
__future__r   r   r$   Úcollections.abcr   r   Útypingr   r   Úcoverager   Úcoverage.exceptionsr	   Úcoverage.miscr
   r   Úcoverage.typesr   r   r   r   r{   r   r   ú<module>rƒ      sK   ðñ 1õ #ã 	Û ß .ß å Ý +ß >ß =á�BÓ€ñ 	�Ó€÷jNò jNr   