§
    øyIfI  ã                  óª   — d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	 dd„Z
dd„Zdd„Zd d„Zd!d„Zd"d„Z ej        d¦  «        Zdd„Zd#d„Zd$d„ZdZdS )%z6Expand tox factor expressions to tox environment list.é    )ÚannotationsN)ÚchainÚgroupbyÚproduct)ÚIteratorÚvalueÚstrÚnameú
str | NoneÚreturnc                óŽ  ‡— |�8t          t          j        d„ t          |¦  «        D ¦   «         ¦  «        ¦  «        nt          ¦   «         Šg }t	          | ¦  «        D ]V\  }}|€|r|                     |¦  «         Œ|D ]4}t          ˆfd„|D ¦   «         ¦  «        r|                     |¦  «          nŒ5ŒWd                     |¦  «        S )Nc                ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c              3  ó    K  — | ]	\  }}|V — Œ
d S ©N© )Ú.0ÚiÚ_s      úP/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/loader/ini/factor.pyú	<genexpr>z,filter_for_env.<locals>.<listcomp>.<genexpr>   s&   è è € Ð!2Ð!2©¨¨1 !Ð!2Ð!2Ð!2Ð!2Ð!2Ð!2ó    r   )r   Úas     r   ú
<listcomp>z"filter_for_env.<locals>.<listcomp>   s'   € Ð UÐ UÐ U°qÐ!2Ð!2°Ð!2Ñ!2Ô!2Ð UÐ UÐ Ur   c              3  ó,   •K  — | ]\  }}|‰v |z  V — Œd S r   r   )r   Úa_nameÚnegateÚcurrents      €r   r   z!filter_for_env.<locals>.<genexpr>   s1   øè è € ÐPÐP¹¸À˜ 'Ð)¨VÑ3ÐPÐPÐPÐPÐPÐPr   ú
)Úsetr   Úfrom_iterableÚfind_factor_groupsÚexpand_factorsÚappendÚallÚjoin)r   r
   ÚoverallÚfactorsÚcontentÚgroupr   s         @r   Úfilter_for_envr*   
   sï   ø€ à[_Ð[k��EÔÐ UÐ UÕ<NÈtÑ<TÔ<TÐ UÑ UÔ UÑVÔVÑWÔWÐWÕqtÑqvÔqvð ð €GÝ*¨5Ñ1Ô1ð ð Ñˆ�Øˆ?Øð (Ø—’˜wÑ'Ô'Ð'øà ð ð �ÝÐPÐPÐPÐPÈ%ÐPÑPÔPÑPÔPð Ø—N’N 7Ñ+Ô+Ð+Ø�Eðøð �9Š9�WÑÔÐr   úIterator[str]c              #  ó¶   K  — t          ¦   «         }t          | ¦  «        D ]8\  }}|�1|D ].}t          |¦  «        }||vr|V — |                     |¦  «         Œ/Œ9d S r   )r   r"   Úexplode_factorÚadd)r   Úseenr'   r   r)   Úenvs         r   Ú	find_envsr1      sy   è è € Ý‰5Œ5€DÝ$ UÑ+Ô+ð "ð "‰
ˆ�ØÐØ ð "ð "�Ý$ UÑ+Ô+�Ø˜d�?�?Ø�I�I�IØ—H’H˜S‘M”M�Møøð"ð "r   c              #  óP   K  — t          | ¦  «        D ]}t          |¦  «        V — Œd S r   )r!   r-   )r   r)   s     r   Úextend_factorsr3   &   s>   è è € Ý# EÑ*Ô*ð $ð $ˆÝ˜UÑ#Ô#Ð#Ð#Ð#Ð#ð$ð $r   r)   úlist[tuple[str, bool]]c                ó@   — d                      d„ | D ¦   «         ¦  «        S )Nú-c                ó   — g | ]\  }}|‘ŒS r   r   )r   r
   r   s      r   r   z"explode_factor.<locals>.<listcomp>,   s   € Ð/Ð/Ð/™g˜d A�TÐ/Ð/Ð/r   )r%   )r)   s    r   r-   r-   +   s#   € Ø�8Š8Ð/Ð/¨Ð/Ñ/Ô/Ñ0Ô0Ð0r   ú9Iterator[tuple[list[list[tuple[str, bool]]] | None, str]]c              #  ó‚  K  — |                       d¦  «        D ]¦}d }t          j        d|¦  «        }|r|                     ¦   «         nd|}}|dk    rg	 t	          t          |d |…                              ¦   «         ¦  «        ¦  «        }||dz   d …                              ¦   «         }n# t          $ r Y nw xY w||fV — Œ§d S )Nr   z:(\s|$)éÿÿÿÿé   )ÚsplitÚreÚsearchÚstartÚlistr!   ÚstripÚ
ValueError)r   Úliner'   Úmarker_searchÚ	marker_atr(   s         r   r"   r"   /   só   è è € Ø—’˜DÑ!Ô!ð ð ˆØ7;ˆÝœ	 *¨dÑ3Ô3ˆØ6CÐK˜]×0Ò0Ñ2Ô2Ð2ÈÈT�7ˆ	Ø˜Š?ˆ?ð8ÝÕ1°$°z¸	°zÔ2B×2HÒ2HÑ2JÔ2JÑKÔKÑLÔL�ð ˜y¨1™}˜˜Ô/×5Ò5Ñ7Ô7��øõ ð ð ð Ø�ðøøøð �wÐÐÐÐÐðð s   Á6B(Â(
B5Â4B5ú Iterator[list[tuple[str, bool]]]c              #  ót   K  — t          | ¦  «        D ]%}d„ |                     d¦  «        D ¦   «         }|V — Œ&dS )z\Transform '{py,!pi}-{a,b},c' to [{'py', 'a'}, {'py', 'b'}, {'pi', 'a'}, {'pi', 'b'}, {'c'}].c                ó,   — g | ]}t          |¦  «        ‘ŒS r   )Úname_with_negate)r   Úfs     r   r   z&find_factor_groups.<locals>.<listcomp>A   s!   € Ð>Ð>Ð>¨!Õ" 1Ñ%Ô%Ð>Ð>Ð>r   r6   N)Úexpand_env_with_negationr<   )r   r0   Úresults      r   r!   r!   >   sO   è è € å'¨Ñ.Ô.ð ð ˆØ>Ð>¨s¯yªy¸©~¬~Ð>Ñ>Ô>ˆØˆˆˆˆðð r   z!?[\w._][\w._-]*c              #  ó¼  K  — t          t          j        d| ¦  «        t          ¬¦  «        D ]¯\  }}|r¨d                     |¦  «                             ¦   «         }t          j        d|¦  «        }d„ |D ¦   «         }t          |Ž D ]V}d                     |¦  «        }t          d„ |                     d¦  «        D ¦   «         ¦  «        st          |¦  «        ‚|V — ŒWŒ°dS )	zHTransform '{py,!pi}-{a,b},c' to ['py-a', 'py-b', '!pi-a', '!pi-b', 'c'].z((?:{[^}]+})+)|,)ÚkeyÚ z	{([^}]+)}c                óL   — g | ]!}d „ |                      d¦  «        D ¦   «         ‘Œ"S )c                ó6   — g | ]}|                      ¦   «         ‘ŒS r   )rA   ©r   r   s     r   r   z7expand_env_with_negation.<locals>.<listcomp>.<listcomp>N   s    € Ð9Ð9Ð9 A�a—g’g‘i”iÐ9Ð9Ð9r   ú,)r<   )r   Úelems     r   r   z,expand_env_with_negation.<locals>.<listcomp>N   s1   € ÐOÐOÐO¸dÐ9Ð9¨¯ª°C©¬Ð9Ñ9Ô9ÐOÐOÐOr   c              3  óJ   K  — | ]}t                                |¦  «        V — Œd S r   )Ú
_FACTOR_REÚ	fullmatchrR   s     r   r   z+expand_env_with_negation.<locals>.<genexpr>Q   s0   è è € ÐSÐS°q�:×/Ò/°Ñ2Ô2ÐSÐSÐSÐSÐSÐSr   r6   N)	r   r=   r<   Úboolr%   rA   r   r$   rB   )r   rN   r)   Ú	group_strÚelementsÚpartsÚvariantÚvariant_strs           r   rK   rK   H   só   è è € å�bœhÐ':¸EÑBÔBÍÐMÑMÔMð 	"ð 	"‰
ˆˆUØð 	"ØŸš ™œ×,Ò,Ñ.Ô.ˆIÝ”x ¨iÑ8Ô8ˆHØOÐOÀhÐOÑOÔOˆEÝ" E˜?ð "ð "�Ø Ÿgšg gÑ.Ô.�ÝÐSÐS¸K×<MÒ<MÈcÑ<RÔ<RÐSÑSÔSÑSÔSð 2Ý$ [Ñ1Ô1Ð1Ø!Ð!Ð!Ð!Ð!øð	"ð 	"r   Úfactorútuple[str, bool]c                óD   — t          | ¦  «        }|r
| dd …         n| }||fS )Nr;   )Ú
is_negated)r^   ÚnegatedrL   s      r   rI   rI   V   s/   € Ý˜Ñ Ô €GØ"Ð.ˆV�A�B�BŒZˆZ¨€FØ�7ˆ?Ðr   rX   c                ó,   — |                       d¦  «        S )Nú!)Ú
startswith)r^   s    r   ra   ra   \   s   € Ø×Ò˜SÑ!Ô!Ð!r   )r"   r3   r*   r1   )r   r	   r
   r   r   r	   )r   r	   r   r+   )r)   r4   r   r	   )r   r	   r   r8   )r   r	   r   rF   )r^   r	   r   r_   )r^   r	   r   rX   )Ú__doc__Ú
__future__r   r=   Ú	itertoolsr   r   r   Útypingr   r*   r1   r3   r-   r"   r!   ÚcompilerV   rK   rI   ra   Ú__all__r   r   r   ú<module>rl      s)  ðØ <Ð <à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð ðð ð ð ð""ð "ð "ð "ð$ð $ð $ð $ð
1ð 1ð 1ð 1ðð ð ð ðð ð ð ð ˆRŒZÐ+Ñ,Ô,€
ð"ð "ð "ð "ðð ð ð ð"ð "ð "ð "ð€€€r   