Ë
    ”U.j%  ã                  ó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d¬«       G d„ d«      «       Z
y	)
é    )Ú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y)ÚReleaseControlz9Helper for managing which release types can be installed.)Údefault_factoryúset[str]Úall_releasesÚ
only_finalF)Úinitr   ÚcompareÚreprúlist[tuple[str, str]]Ú_orderc                óL  — |j                  d«      rt        d«      ‚|j                  d«      }d|v ro|j                  «        |j                  «        |j	                  d«       | j
                  j                  |df«       |d|j                  d«      dz   …= d|vryd|v rŒo|D ]  }|dk(  r.|j                  «        | j
                  j                  |df«       Œ6t        |«      }|j                  |«       |j	                  |«       | j
                  j                  ||f«       Œ� y)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)ÚselfÚvalueÚtargetÚotherÚ	attr_nameÚnewÚnames          úfC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pip/_internal/models/release_control.pyÚhandle_mutual_excludesz%ReleaseControl.handle_mutual_excludes   s  € ð ×Ñ˜CÔ ÜØKóð ð �k‰k˜#ÓˆØ˜‰nØ�K‰KŒMØ�L‰LŒNØ�J‰J�wÔà�K‰K×Ñ 	¨7Ð3Ô4ØÐ,�c—i‘i Ó(¨1Ñ,Ð,Ð-à˜sÑ"Øð ˜Šnó ˆDØ�xÒØ—‘”à—‘×"Ñ" I¨xÐ#8Ô9ØÜ$ TÓ*ˆDØ�M‰M˜$ÔØ�J‰J�tÔà�K‰K×Ñ 	¨4Ð0Õ1ñ ó    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ˆ~Ðr*   c                ó|   — || j                   v ry|| j                  v ryd| j                   v ryd| j                  v ryy)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!   Úcanonical_names     r(   Úallows_prereleasesz!ReleaseControl.allows_prereleasesJ   sG   € ð ˜T×.Ñ.Ñ.ØØ˜tŸ™Ñ.ØØ˜×)Ñ)Ñ)ØØ˜Ÿ™Ñ'ØØr*   N)
r"   Ústrr#   r   r$   r   r%   r0   ÚreturnÚNone)r1   r   )r.   r   r1   zbool | None)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úsetr   Ú__annotations__r   Úlistr   r)   r,   r/   © r*   r(   r   r   
   sv   … áCá"°3Ô7€L�(Ó7Ù °Ô5€J�Ó5Ù$)Ø D°%¸eô%€FÐ!ó ð%2Øð%2Ø"*ð%2Ø3;ð%2ØHKð%2à	ó%2óNôr*   r   N)Ú
__future__r   Údataclassesr   r   Úpip._vendor.packaging.utilsr   r   Úpip._internal.exceptionsr   r   r:   r*   r(   Ú<module>r?      s2   ðÝ "ç (ç Iå 1ñ �Ô÷Pð Pó ñPr*   