§
    VPƒiK  ã                  óh   — d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 e G d„ d¦  «        ¦   «         Z
dS )é    )Úannotations)Ú	dataclassÚfield)ÚNormalizedNameÚcanonicalize_name)ÚCommandErrorc                  ó˜   — e Zd ZU dZ ee¬¦  «        Zded<    ee¬¦  «        Zded<    ede	dd¬¦  «        Z
ded	<   dd„Zdd„Zdd„ZdS )ÚReleaseControlz9Helper for managing which release types can be installed.)Údefault_factoryúset[str]Úall_releasesÚ
only_finalF)Úinitr   ÚcompareÚreprúlist[tuple[str, str]]Ú_orderÚvalueÚstrÚtargetÚotherÚ	attr_nameÚreturnÚNonec                óž  — |                      d¦  «        rt          d¦  «        ‚|                     d¦  «        }d|v r~|                     ¦   «          |                     ¦   «          |                     d¦  «         | j                             |df¦  «         |d|                     d¦  «        dz   …= d|vrdS d|v °~|D ]Ž}|dk    r1|                     ¦   «          | j                             |df¦  «         Œ9t          |¦  «        }| 	                    |¦  «         |                     |¦  «         | j                             ||f¦  «         ŒdS )aÈ  Parse and apply release control option value.

        Processes comma-separated package names or special values `:all:` and `:none:`.

        When adding packages to target, they're removed from other to maintain mutual
        exclusivity between all_releases and only_final. All operations are tracked in
        order so that the original command-line argument sequence can be reconstructed
        when passing options to build subprocesses.
        ú-z9--all-releases / --only-final option requires 1 argument.ú,ú:all:Né   z:none:)
Ú
startswithr   ÚsplitÚclearÚaddr   ÚappendÚindexr   Údiscard)Úselfr   r   r   r   ÚnewÚnames          úx/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pip/_internal/models/release_control.pyÚhandle_mutual_excludesz%ReleaseControl.handle_mutual_excludes   sl  € ð ×Ò˜CÑ Ô ð 	ÝØKñô ð ð kŠk˜#ÑÔˆØ˜ˆnˆnØKŠK‰MŒMˆMØLŠL‰NŒNˆNØJŠJwÑÔÐàŒK×Ò 	¨7Ð3Ñ4Ô4Ð4ØÐ,c—i’i Ñ(Ô(¨1Ñ,Ð,Ð-à˜sÐ"Ð"Øð ˜ˆnˆnð ð 
	2ð 
	2ˆDØxÒÐØ—’‘”à”×"Ò" I¨xÐ#8Ñ9Ô9Ð9ØÝ$ TÑ*Ô*ˆDØMŠM˜$ÑÔÐØJŠJtÑÔÐàŒK×Ò 	¨4Ð0Ñ1Ô1Ð1Ð1ð
	2ð 
	2ó    c                ó    — | j         dd…         S )a¼  
        Get ordered list of (flag_name, value) tuples for reconstructing CLI args.

        Returns:
            List of tuples where each tuple is (attribute_name, value).
            The attribute_name is either 'all_releases' or 'only_final'.

        Example:
            [("all_releases", ":all:"), ("only_final", "simple")]
            would be reconstructed as:
            ["--all-releases", ":all:", "--only-final", "simple"]
        N)r   )r'   s    r*   Úget_ordered_argszReleaseControl.get_ordered_args<   s   € ð Œ{˜1˜1˜1Œ~Ðr,   Úcanonical_namer   úbool | Nonec                ó^   — || j         v rdS || j        v rdS d| j         v rdS d| j        v rdS dS )a   
        Determine if pre-releases are allowed for a package.

        Returns:
            True: Pre-releases are allowed (package in all_releases)
            False: Only final releases allowed (package in only_final)
            None: No specific setting, use default behavior
        TFr   N)r   r   )r'   r/   s     r*   Úallows_prereleasesz!ReleaseControl.allows_prereleasesK   sS   € ð ˜TÔ.Ð.Ð.Ø4Ø˜tœÐ.Ð.Ø5Ø˜Ô)Ð)Ð)Ø4Ø˜œÐ'Ð'Ø5Øˆtr,   N)
r   r   r   r   r   r   r   r   r   r   )r   r   )r/   r   r   r0   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úsetr   Ú__annotations__r   Úlistr   r+   r.   r2   © r,   r*   r
   r
      sÈ   € € € € € € àCÐCà"˜U°3Ð7Ñ7Ô7€LÐ7Ð7Ð7Ñ7Ø ˜5°Ð5Ñ5Ô5€JÐ5Ð5Ð5Ñ5Ø$) EØ D°%¸eð%ñ %ô %€Fð ð ð ñ ð%2ð %2ð %2ð %2ðNð ð ð ðð ð ð ð ð r,   r
   N)Ú
__future__r   Údataclassesr   r   Úpip._vendor.packaging.utilsr   r   Úpip._internal.exceptionsr   r
   r:   r,   r*   ú<module>r?      s¡   ðØ "Ð "Ð "Ð "Ð "Ð "à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ià 1Ð 1Ð 1Ð 1Ð 1Ð 1ð ðPð Pð Pð Pð Pñ Pô Pñ „ðPð Pð Pr,   