Ë
    KuŠiK  ã                  óZ   — 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
y)é    )Ú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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          ún/root/.openclaw/workspace/chatterbox_venv/lib/python3.12/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‰JwÔàK‰K×Ñ 	¨7Ð3Ô4ØÐ,c—i‘i Ó(¨1Ñ,Ð,Ð-à˜sÑ"Øð ˜Šnð ò 
	2ˆDØxÒØ—‘”à—‘×"Ñ" I¨xÐ#8Ô9ØÜ$ TÓ*ˆDØM‰M˜$ÔØJ‰JtÔàK‰K×Ñ 	¨4Ð0Õ1ñ
	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ˆ~Ð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_prereleasesK   sG   € ð ˜T×.Ñ.Ñ.ØØ˜tŸ™Ñ.ØØ˜×)Ñ)Ñ)ØØ˜Ÿ™Ñ'ØØr)   N)
r!   Ústrr"   r   r#   r   r$   r/   ÚreturnÚNone)r0   r   )r-   r   r0   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
   r9   r)   r'   ú<module>r>      s-   ðÝ "ç (ç Iå 1ð ÷Pð Pó ñPr)   