§
    øyIfž  ã                  óà   — d 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
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mZmZmZ e
rddlmZ ddlmZ ddlmZ  G d„ de¦  «        Z dgZ!dS )zLoad.é    )Úannotations)Údefaultdict)ÚConfigParser)Úchain)ÚTYPE_CHECKINGÚIterableÚIterator)Ú	IniLoader)Ú	find_envs)ÚSectioné   )ÚSource)ÚCOREÚPKG_ENV_PREFIXÚTEST_ENV_PREFIXÚ
IniSection)ÚPath)ÚOverrideMap)Ú	ConfigSetc                  óz   ‡ — e Zd ZdZeZd'd(ˆ f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d0d%„Zd1d&„Zˆ xZS )2Ú	IniSourcez8Configuration sourced from a ini file (such as tox.ini).NÚpathr   Úcontentú
str | NoneÚreturnÚNonec                óX  •— t          ¦   «                              |¦  «         t          d ¬¦  «        | _        |€/|                     ¦   «         st
          ‚|                     ¦   «         }| j                             |t          |¦  «        ¦  «         t          t          ¦  «        | _        d S )N)Úinterpolation)ÚsuperÚ__init__r   Ú_parserÚexistsÚ
ValueErrorÚ	read_textÚread_stringÚstrr   ÚlistÚ_section_mapping)Úselfr   r   Ú	__class__s      €úI/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/source/ini.pyr    zIniSource.__init__   s‹   ø€ Ý‰Œ×Ò˜ÑÔÐÝ#°$Ð7Ñ7Ô7ˆŒØˆ?Ø—;’;‘=”=ð !Ý Ð Ø—n’nÑ&Ô&ˆGØŒ× Ò  ­#¨d©)¬)Ñ4Ô4Ð4Ý=HÍÑ=NÔ=NˆÔÐÐó    Úsectionr   c                ó6   — t          |j        |j        ¦  «        S ©N)r   ÚprefixÚname©r)   r-   s     r+   Útransform_sectionzIniSource.transform_section'   s   € Ý˜'œ.¨'¬,Ñ7Ô7Ð7r,   úIterator[IniSection]c              #  ón   K  — | j                              ¦   «         D ]}t          j        |¦  «        V — Œd S r/   )r!   Úsectionsr   Úfrom_keyr2   s     r+   r6   zIniSource.sections*   sG   è è € Ø”|×,Ò,Ñ.Ô.ð 	/ð 	/ˆGÝÔ% gÑ.Ô.Ð.Ð.Ð.Ð.ð	/ð 	/r,   Úoverride_mapr   úIniLoader | Nonec                óT  — | j                              |j        ¦  «        pg D ]-}|j        �"t	          j        |¦  «        j        |j        k    r nŒ.|j        }| j                             |¦  «        r7t          || j        |                     |j        g ¦  «        | j
        |¬¦  «        S d S )N)r-   ÚparserÚ	overridesÚcore_sectionÚsection_key)r(   Úgetr1   r0   r   r7   Úkeyr!   Úhas_sectionr
   ÚCORE_SECTION)r)   r-   r8   r@   s       r+   Ú
get_loaderzIniSource.get_loader.   s»   € àÔ(×,Ò,¨W¬\Ñ:Ô:Ð@¸bð 	ð 	ˆCØŒ~Ð%­Ô)9¸#Ñ)>Ô)>Ô)EÈÌÒ)WÐ)WØ�ð *Xð ”+ˆCØŒ<×#Ò# CÑ(Ô(ð 	ÝØØ”|Ø&×*Ò*¨7¬;¸Ñ;Ô;Ø!Ô.Øðñ ô ð ð ˆtr,   c                ó   — | j         S r/   )rB   ©r)   s    r+   Úget_core_sectionzIniSource.get_core_section@   s   € ØÔ Ð r,   Úbaseú	list[str]Ú
in_sectionúIterator[Section]c              #  ó€   K  — |D ]8}t          j        |¦  «        }|V — |j        �t          |j        |¦  «        V — Œ9d S r/   )r   r7   r0   )r)   rG   rI   Úa_baser-   s        r+   Úget_base_sectionszIniSource.get_base_sectionsC   s[   è è € Øð 	<ð 	<ˆFÝ Ô)¨&Ñ1Ô1ˆGØˆMˆMˆMØÔ Ð,Ý  Ô!2°FÑ;Ô;Ð;Ð;Ð;øð		<ð 	<r,   Úitemr&   ú$tuple[Section, list[str], list[str]]c                óH   — t          j        |¦  «        t          gt          gfS r/   )r   Útest_envr   r   )r)   rN   s     r+   Úget_tox_env_sectionzIniSource.get_tox_env_sectionJ   s    € ÝÔ" 4Ñ(Ô(­?Ð*;½nÐ=MÐMÐMr,   Úcore_configr   úIterator[str]c              #  ó�   K  — t          ¦   «         }|                      |¦  «        D ]}||vr|                     |¦  «         |V — Œ d S r/   )ÚsetÚ_discover_tox_envsÚadd)r)   rS   Úseenr1   s       r+   ÚenvszIniSource.envsM   sZ   è è € Ý‰uŒuˆØ×+Ò+¨KÑ8Ô8ð 	ð 	ˆDØ˜4ÐÐØ—’˜‘”�Ø�
�
�
øð	ð 	r,   c              #  ó¬  ‡K  — dˆfd„}t          |d         ¦  «        }|E d {V —† t          ¦   «         Š ||¦  «         |                      ¦   «         D ]L}|j        rC ||j        ¦  «         |j        D ]+}| j        |                              |j        ¦  «         |V — Œ,ŒM|                      ¦   «         D ]}|                      |‰¦  «        E d {V —† Œd S )NrZ   úIterable[str]r   r   c                ój   •— ‰                      t          j        d„ | D ¦   «         ¦  «        ¦  «         d S )Nc              3  ó@   K  — | ]}|                      d ¦  «        V — ŒdS )ú-N)Úsplit)Ú.0Úes     r+   ú	<genexpr>zIIniSource._discover_tox_envs.<locals>.register_factors.<locals>.<genexpr>V   s,   è è € Ð4PÐ4PÀa°Q·W²W¸S±\´\Ð4PÐ4PÐ4PÐ4PÐ4PÐ4Pr,   )Úupdater   Úfrom_iterable)rZ   Úknown_factorss    €r+   Úregister_factorsz6IniSource._discover_tox_envs.<locals>.register_factorsU   s7   ø€ Ø× Ò ¥Ô!4Ð4PÐ4PÈ4Ð4PÑ4PÔ4PÑ!PÔ!PÑQÔQÐQÐQÐQr,   Úenv_list)rZ   r\   r   r   )	r'   rV   r6   Úis_test_envÚnamesr(   Úappendr@   Ú_discover_from_section)r)   rS   rg   Úexplicitr-   r1   rf   s         @r+   rW   zIniSource._discover_tox_envsT   s3  øè è € ð	Rð 	Rð 	Rð 	Rð 	Rð 	Rõ ˜ JÔ/Ñ0Ô0ˆØÐÐÐÐÐÐÐÝ"%¡%¤%ˆØÐ˜Ñ"Ô"Ð"ð —}’}‘”ð 	ð 	ˆGØÔ"ð Ø Ð  ¤Ñ/Ô/Ð/Ø#œMð ð �DØÔ)¨$Ô/×6Ò6°w´{ÑCÔCÐCØ�J�J�J�Jøà—}’}‘”ð 	Kð 	KˆGØ×2Ò2°7¸MÑJÔJÐJÐJÐJÐJÐJÐJÐJÐJð	Kð 	Kr,   r   rf   úset[str]c              #  óÎ   K  — | j         |j                                      ¦   «         D ]=}t          |¦  «        D ]+}t	          |                     d¦  «        ¦  «        |z
  r|V — Œ,Œ>d S )Nr_   )r!   r@   Úvaluesr   rV   r`   )r)   r-   rf   ÚvalueÚenvs        r+   rl   z IniSource._discover_from_sectionh   sy   è è € Ø”\ '¤+Ô.×5Ò5Ñ7Ô7ð 	ð 	ˆEÝ  Ñ'Ô'ð ð �Ý�s—y’y ‘~”~Ñ&Ô&¨Ñ6ð Ø�I�I�Iøðð	ð 	r,   c                ó@   — t          | ¦  «        j        › d| j        › d�S )Nz(path=ú))ÚtypeÚ__name__r   rE   s    r+   Ú__repr__zIniSource.__repr__n   s$   € Ý�t‘*”*Ô%Ð9Ð9¨T¬YÐ9Ð9Ð9Ð9r,   r/   )r   r   r   r   r   r   )r-   r   r   r   )r   r4   )r-   r   r8   r   r   r9   )r   r   )rG   rH   rI   r   r   rJ   )rN   r&   r   rO   )rS   r   r   rT   )r-   r   rf   rn   r   rT   )r   r&   )rv   Ú
__module__Ú__qualname__Ú__doc__r   rB   r    r3   r6   rC   rF   rM   rR   rZ   rW   rl   rw   Ú__classcell__)r*   s   @r+   r   r      s$  ø€ € € € € ØBÐBà€LðOð Oð Oð Oð Oð Oð Oð8ð 8ð 8ð 8ð/ð /ð /ð /ðð ð ð ð$!ð !ð !ð !ð<ð <ð <ð <ðNð Nð Nð Nðð ð ð ðKð Kð Kð Kð(ð ð ð ð:ð :ð :ð :ð :ð :ð :ð :r,   r   N)"rz   Ú
__future__r   Úcollectionsr   Úconfigparserr   Ú	itertoolsr   Útypingr   r   r	   Útox.config.loader.inir
   Útox.config.loader.ini.factorr   Útox.config.loader.sectionr   Úapir   Úini_sectionr   r   r   r   Úpathlibr   Útox.config.loader.apir   Útox.config.setsr   r   Ú__all__© r,   r+   ú<module>r‹      s]  ðØ €à "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à +Ð +Ð +Ð +Ð +Ð +Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ð Ð Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jàð *ØÐÐÐÐÐà1Ð1Ð1Ð1Ð1Ð1Ø)Ð)Ð)Ð)Ð)Ð)ðW:ð W:ð W:ð W:ð W:�ñ W:ô W:ð W:ðv ð€€€r,   