§
    øyIf  ã                  ó¸   — U d dl mZ d dl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 dd	lmZ dd
lmZ erddlmZ eeefZded<   dd„Zdd„Zdd„Zdd„ZdZdS )é    )ÚannotationsN)Úchain)ÚPath)ÚTYPE_CHECKING)ÚHandledErroré   )Ú
LegacyToml)ÚSetupCfg)ÚToxIni)ÚSourceztuple[type[Source], ...]ÚSOURCE_TYPESÚconfig_fileúPath | NoneÚroot_dirÚreturnr   c                ó$  — | € t          ¦   «         }|€t          |¦  «        }nm|                      ¦   «         rJd}t          D ])}| |j        z  }	  ||¦  «        } n# t
          $ r Y Œ&w xY w|€d| › �}t          |¦  «        ‚nt          | ¦  «        }|S )zÙ
    Discover a source for configuration.

    :param config_file: the file storing the source
    :param root_dir: the root directory as set by the user (None means not set)
    :return: the source of the config
    Nz"could not find any config file in )Ú_locate_sourceÚ_create_default_sourceÚis_dirr   ÚFILENAMEÚ
ValueErrorr   Ú_load_exact_source)r   r   ÚsrcÚsrc_typeÚ	candidateÚmsgs         úN/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/source/discover.pyÚdiscover_sourcer      sÏ   € ð ÐÝÑÔˆØˆ;Ý(¨Ñ2Ô2ˆCøØ	×	Ò	Ñ	Ô	ð .ØˆÝ$ð 	ð 	ˆHØ)¨HÔ,=Ñ=ˆIðØ�h˜yÑ)Ô)�Ø�øÝð ð ð Ø�ðøøøàˆ;ØD°{ÐDÐDˆCÝ˜sÑ#Ô#Ð#ð õ ! Ñ-Ô-ˆØ€Js   ÁAÁ
A'Á&A'úSource | Nonec                 óÄ   — t          j        ¦   «         } t          | g| j        ¦  «        D ]5}t          D ]+}||j        z  }	  ||¦  «        c c S # t          $ r Y Œ(w xY wŒ6d S ©N)r   Úcwdr   Úparentsr   r   r   )ÚfolderÚbaser   r   s       r   r   r   1   s“   € ÝŒX‰ZŒZ€FÝ�v�h ¤Ñ/Ô/ð ð ˆÝ$ð 	ð 	ˆHØ" XÔ%6Ñ6ˆIðØ�x 	Ñ*Ô*Ð*Ð*Ð*Ð*Ð*øÝð ð ð Ø�ðøøøð		ð ˆ4s   Á 
AÁ
AÁAr   c                óÆ   ‡ — t          ˆ fd„t          D ¦   «         d ¦  «        }|�|fnt          D ]}	  |‰ ¦  «        c S # t          $ r Y Œw xY wd‰ › �}t          |¦  «        ‚)Nc              3  ó<   •K  — | ]}‰j         |j        k    ¯|V — Œd S r!   )Únamer   )Ú.0Úsr   s     €r   ú	<genexpr>z%_load_exact_source.<locals>.<genexpr>?   s2   øè è € ÐRÐR˜a°;Ô3CÀqÄzÒ3QÐ3Q˜Ð3QÐ3QÐ3QÐ3QÐRÐRó    z could not recognize config file )Únextr   r   r   )r   Úexact_matchr   r   s   `   r   r   r   =   s˜   ø€ åÐRÐRÐRÐR¥<ÐRÑRÔRÐTXÑYÔY€KØ&1Ð&=�[�N�NÅ<ð ð ˆð	Ø�8˜KÑ(Ô(Ð(Ð(Ð(øÝð 	ð 	ð 	ØˆDð	øøøà
:¨[Ð
:Ð
:€CÝ
�sÑ
Ô
Ðs   ²
?¿
AÁAc                ó2  — | €Ht          j        ¦   «         }t          |g|j        ¦  «        D ]}|dz                       ¦   «         r|} nŒn| }t          j        dd                     d„ t          D ¦   «         ¦  «        |¦  «         t          |dz  d¬¦  «        S )Nzpyproject.tomlz)No %s found, assuming empty tox.ini at %sz or c              3  ó$   K  — | ]}|j         V — Œd S r!   )r   )r)   Úis     r   r+   z)_create_default_source.<locals>.<genexpr>R   s%   è è € ÐLnÐLnÐ\]ÈQÌZÐLnÐLnÐLnÐLnÐLnÐLnr,   ztox.iniÚ )Úcontent)
r   r"   r   r#   ÚexistsÚloggingÚwarningÚjoinr   r   )r   Úemptyr%   s      r   r   r   I   s«   € ØÐÝ”‘
”
ˆÝ˜5˜' 5¤=Ñ1Ô1ð 	ð 	ˆDØÐ'Ñ'×/Ò/Ñ1Ô1ð Ø�Ø�ðøð ˆÝ„OÐ?ÀÇÂÐLnÐLnÕamÐLnÑLnÔLnÑAnÔAnÐpuÑvÔvÐvÝ�%˜)Ñ#¨RÐ0Ñ0Ô0Ð0r,   )r   )r   r   r   r   r   r   )r   r   )r   r   r   r   )r   r   r   r   )Ú
__future__r   r5   Ú	itertoolsr   Úpathlibr   Útypingr   Ú
tox.reportr   Úlegacy_tomlr	   Ú	setup_cfgr
   Útox_inir   Úapir   r   Ú__annotations__r   r   r   r   Ú__all__© r,   r   ú<module>rE      s.  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à #Ð #Ð #Ð #Ð #Ð #à #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àð ØÐÐÐÐÐà*0°(¸JÐ)G€Ð GÐ GÐ GÑ Gðð ð ð ð:	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð
1ð 
1ð 
1ð 
1ð €€€r,   