§
    øyIf×  ã                  óv  — 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
mZ d dlmZ d dlmZ ddlmZmZ dd	lmZ erd d
lmZ d dlmZ ddlmZ  G d„ d¦  «        Z G d„ d¦  «        Ze
ee	e         f         Z ed¦  «        Z ed¦  «        Z  G d„ dee         ¦  «        Z!edd„¦   «         Z" e¦   «         Z#dS )é    )Úannotations)Úabstractmethod)ÚArgumentTypeError)ÚTYPE_CHECKINGÚAnyÚListÚMappingÚTypeVar)Úimpl)Ú
PythonDepsé   )ÚConvertÚFactory)Ú
StrConvert)Ú	ToxParser)ÚConfig)ÚSectionc                  ó:   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚOverridez#An override for config definitions.ÚvalueÚstrÚreturnÚNonec                ó  — |                      d¦  «        \  }}| _        |sd|› d�}t          |¦  «        ‚d| _        |                     d¦  «        r|d d…         }d| _        |                     d¦  «        \  | _        }| _        d S )	Nú=z	override z has no = sign in itFú+éÿÿÿÿTú.)Ú	partitionr   r   ÚappendÚendswithÚ
rpartitionÚ	namespaceÚkey)Úselfr   r$   ÚequalÚmsgÚ_s         úI/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/loader/api.pyÚ__init__zOverride.__init__   s‘   € Ø!&§¢°Ñ!5Ô!5ÑˆˆU�D”JØð 	)Ø9˜eÐ9Ð9Ð9ˆCÝ# CÑ(Ô(Ð(àˆŒØ�<Š<˜ÑÔð 	Ø�c�r�c”(ˆCØˆDŒKà&)§n¢n°SÑ&9Ô&9Ñ#ˆŒ˜˜4œ8˜8˜8ó    c                ó&   — | j         j        › d| › d�S )Nz('z'))Ú	__class__Ú__name__©r%   s    r)   Ú__repr__zOverride.__repr__$   s   € Ø”.Ô)Ð5Ð5¨TÐ5Ð5Ð5Ð5r+   c                óH   — | j         › | j         rdnd› | j        › d| j        › �S )Nr   Ú r   )r#   r$   r   r/   s    r)   Ú__str__zOverride.__str__'   s1   € Ø”.ÐX¨¬Ð"? # #¸RÐXÀÄÐXÐXÈDÌJÐXÐXÐXr+   ÚotherÚobjectÚboolc                óš   — t          | ¦  «        t          |¦  «        k    rdS | j        | j        | j        f|j        |j        |j        fk    S )NF)Útyper#   r$   r   ©r%   r4   s     r)   Ú__eq__zOverride.__eq__*   sL   € Ý�‰:Œ:�˜e™œÒ$Ð$Ø�5Ø” ¤¨$¬*Ð5ØŒOØŒIØŒKð:
ò 
ð 	
r+   c                ó   — | |k     S ©N© r9   s     r)   Ú__ne__zOverride.__ne__3   s   € Ø˜E’MÐ"Ð"r+   N)r   r   r   r   ©r   r   )r4   r5   r   r6   )	r.   Ú
__module__Ú__qualname__Ú__doc__r*   r0   r3   r:   r>   r=   r+   r)   r   r      s‚   € € € € € Ø-Ð-ð:ð :ð :ð :ð6ð 6ð 6ð 6ðYð Yð Yð Yð
ð 
ð 
ð 
ð#ð #ð #ð #ð #ð #r+   r   c                  ó"   — e Zd ZdZdd	„Zdd
„ZdS )ÚConfigLoadArgsz2Arguments that help loading a configuration value.Úchainúlist[str] | NoneÚnameú
str | NoneÚenv_namer   r   c                ó4   — |pg | _         || _        || _        dS )zÏ
        :param chain: the configuration chain (useful to detect circular references)
        :param name: the name of the configuration
        :param env_name: the tox environment this load is for
        N)rE   rG   rI   )r%   rE   rG   rI   s       r)   r*   zConfigLoadArgs.__init__:   s!   € ð !& ¨ˆŒ
ØˆŒ	Ø ˆŒˆˆr+   c                óf   — t          | j                             ¦   «         | j        | j        ¦  «        S )z$:return: create a copy of the object)rD   rE   ÚcopyrG   rI   r/   s    r)   rL   zConfigLoadArgs.copyD   s$   € å˜dœjŸošoÑ/Ô/°´¸D¼MÑJÔJÐJr+   N)rE   rF   rG   rH   rI   rH   r   r   )r   rD   )r.   r@   rA   rB   r*   rL   r=   r+   r)   rD   rD   7   sH   € € € € € Ø<Ð<ð!ð !ð !ð !ðKð Kð Kð Kð Kð Kr+   rD   ÚTÚVc                  ó‚   — e Zd ZdZd#d„Zed$d	„¦   «         Zed%d„¦   «         Zed&d„¦   «         Z	d'd„Z
d(d„Zd)d„Zd*d!„Zd"S )+ÚLoaderz3Loader loads a configuration value and converts it.Úsectionr   Ú	overridesúlist[Override]r   r   c                ó    — || _         i | _        |D ]5}| j                             |j        g ¦  «                             |¦  «         Œ6d | _        d S r<   )Ú_sectionrR   Ú
setdefaultr$   r    Úparent)r%   rQ   rR   Úoverrides       r)   r*   zLoader.__init__R   sW   € ØˆŒØ46ˆŒØ!ð 	Ið 	IˆHØŒN×%Ò% h¤l°BÑ7Ô7×>Ò>¸xÑHÔHÐHÐHØ*.ˆŒˆˆr+   c                ó   — | j         S r<   )rU   r/   s    r)   rQ   zLoader.sectionY   s
   € àŒ}Ðr+   r$   r   ÚconfúConfig | NonerI   rH   rM   c                ó   — t           ‚)z×
        Load the raw object from the config store.

        :param key: the key under what we want the configuration
        :param env_name: load for env name
        :param conf: the global config object
        ©ÚNotImplementedError)r%   r$   rZ   rI   s       r)   Úload_rawzLoader.load_raw]   s
   € õ "Ð!r+   úset[str]c                ó   — t           ‚)z<A list of configuration keys found within the configuration.r]   r/   s    r)   Ú
found_keyszLoader.found_keysh   s
   € õ "Ð!r+   c                ó,   — t          | ¦  «        j        › S r<   )r8   r.   r/   s    r)   r0   zLoader.__repr__m   s   € Ý�t‘*”*Ô%Ð'Ð'r+   Úitemr6   c                ó.   — ||                       ¦   «         v S r<   )rb   )r%   rd   s     r)   Ú__contains__zLoader.__contains__p   s   € Ø�t—’Ñ(Ô(Ð(Ð(r+   Úof_typeútype[V]Úfactoryú
Factory[V]ÚargsrD   rN   c                ó  — ddl m} | j                             |g ¦  «        }	 |                      |||j        ¦  «        }|                      ||||||¦  «        }	n# t          $ r d}	|s‚ Y nw xY w|D �]}
t           	                    |
j
        ||¦  «        }|
j        rì|	�êt          |	t          ¦  «        rt          |t          ¦  «        r|	|z  }	Œ]t          |	t          ¦  «        r+t          |t          ¦  «        r|	                     |¦  «         Œ�t          |	|¦  «        r(t          ||¦  «        r|	                     |d¬¦  «         ŒÕt          |	t           ¦  «        rt          |t           ¦  «        r|	|z  }	�Œd}t#          |¦  «        ‚|}	�Œ|	S )a€  
        Load a value (raw and then convert).

        :param key: the key under it lives
        :param of_type: the type to convert to
        :param factory: factory method to build the object
        :param conf: the configuration object of this tox session (needed to manifest the value)
        :param args: the config load arguments
        :return: the converted type
        r   )ÚSetEnvNT)rX   z&Only able to append to lists and dicts)Útox.config.set_envrm   rR   Úgetr_   rI   ÚbuildÚKeyErrorÚ_STR_CONVERTÚtor   r    Ú
isinstanceÚlistÚdictÚupdater   Ú
ValueError)r%   r$   rg   ri   rZ   rk   rm   rR   ÚrawÚ	convertedrX   Úconverted_overrider'   s                r)   ÚloadzLoader.loads   sÙ  € ð$ 	.Ð-Ð-Ð-Ð-Ð-à”N×&Ò& s¨BÑ/Ô/ˆ	ð	KØ—-’-  T¨4¬=Ñ9Ô9ˆCð Ÿ
š
 3¨°¸$ÀÀTÑJÔJˆIˆIøõ ð 	ð 	ð 	ØˆIØð Øðð ð	øøøð "ð 	/ñ 	/ˆHÝ!-§¢°´ÀÈ'Ñ!RÔ!RÐØŒð / 9Ð#8Ý˜i­Ñ.Ô.ð 
*µ:Ð>PÕRVÑ3WÔ3Wð 
*ØÐ!3Ñ3�I�IÝ 	­4Ñ0Ô0ð *µZÐ@RÕTXÑ5YÔ5Yð *Ø×$Ò$Ð%7Ñ8Ô8Ð8Ð8Ý 	¨6Ñ2Ô2ð *µzÐBTÐV\Ñ7]Ô7]ð *Ø×$Ò$Ð%7À$Ð$ÑGÔGÐGÐGÝ 	­:Ñ6Ô6ð *½:ÐFXÕZdÑ;eÔ;eð *ØÐ!3Ñ3�I‘IàB�CÝ$ S™/œ/Ð)à.�	‘	àÐs   £A ÁA,Á+A,ry   c                ó0   — |                       |||¦  «        S )aW  
        Materialize the raw configuration value from the loader.

        :param future: a future which when called will provide the converted config value
        :param key: the config key
        :param of_type: the config type
        :param conf: the global config
        :param raw: the raw value
        :param args: env args
        )rs   )r%   r$   rg   ri   rZ   ry   rk   s          r)   rp   zLoader.build¥   s   € ð& �wŠw�s˜G WÑ-Ô-Ð-r+   N)rQ   r   rR   rS   r   r   )r   r   )r$   r   rZ   r[   rI   rH   r   rM   )r   r`   r?   )rd   r   r   r6   )r$   r   rg   rh   ri   rj   rZ   r[   rk   rD   r   rN   )r$   r   rg   rh   ri   rj   rZ   r[   ry   rM   rk   rD   r   rN   )r.   r@   rA   rB   r*   ÚpropertyrQ   r   r_   rb   r0   rf   r|   rp   r=   r+   r)   rP   rP   O   sß   € € € € € Ø=Ð=ð/ð /ð /ð /ð ðð ð ñ „Xðð ð"ð "ð "ñ „^ð"ð ð"ð "ð "ñ „^ð"ð(ð (ð (ð (ð)ð )ð )ð )ð0ð 0ð 0ð 0ðd.ð .ð .ð .ð .ð .r+   rP   Úparserr   r   r   c                óT   — d}|                       |ddt          g dd|› d�¬¦  «         d S )Nz-xz
--overrider    rX   z!configuration override(s), e.g., z! testenv:pypy3.ignore_errors=True)Úactionr8   ÚdefaultÚdestÚhelp)Úadd_argumentr   )r   Úoverride_short_options     r)   Útox_add_optionr‡   »   sP   € à ÐØ
×ÒØØØÝØØØiÐ1FÐiÐiÐið ñ ô ð ð ð r+   N)r   r   r   r   )$Ú
__future__r   Úabcr   Úargparser   Útypingr   r   r   r	   r
   Ú
tox.pluginr   Útox.tox_env.python.pip.req_filer   Úconvertr   r   Ústr_convertr   Útox.config.cli.parserr   Útox.config.mainr   rQ   r   r   rD   r   ÚOverrideMaprM   rN   rP   r‡   rr   r=   r+   r)   ú<module>r“      sá  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø #Ð #Ð #Ð #Ð #Ð #àð !Ø/Ð/Ð/Ð/Ð/Ð/Ø&Ð&Ð&Ð&Ð&Ð&à Ð Ð Ð Ð Ð ð #ð  #ð  #ð  #ð  #ñ  #ô  #ð  #ðFKð Kð Kð Kð Kñ Kô Kð Kð$ �c˜4 œ>Ð)Ô*€à€GˆC�L„L€Ø€GˆC�L„L€ði.ð i.ð i.ð i.ð i.ˆW�QŒZñ i.ô i.ð i.ðX ð
ð 
ð 
ñ „ð
ð ˆz‰|Œ|€€€r+   