§
    �’j€  ã                  ó|   — 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d¬¦  «         G d„ d¦  «        ¦   «         Z
d	S )
é    )Úannotations)Ú	dataclassÚfield)ÚNormalizedNameÚcanonicalize_name)ÚCommandErrorT)Úslotsc                  ó˜   — 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          úRC:\Projects\DSCons\.venv\Lib\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ŠJ�wÑÔÐàŒ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ŠJ�tÑÔÐàŒ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(   r0   s     r+   Úallows_prereleasesz!ReleaseControl.allows_prereleasesJ   sS   € ð ˜TÔ.Ð.Ð.Ø�4Ø˜tœÐ.Ð.Ø�5Ø˜Ô)Ð)Ð)Ø�4Ø˜œÐ'Ð'Ø�5Øˆtr-   N)
r   r   r   r   r   r   r   r   r   r   )r   r   )r0   r   r   r1   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úsetr   Ú__annotations__r   Úlistr   r,   r/   r3   © 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-   