ó
    T=Œj%  ã                  ób   • S SK Jr  S SKJrJr  S SKJrJr  S SKJ	r	  \" SS9 " S S5      5       r
g	)
é    )Úannotations)Ú	dataclassÚfield)ÚNormalizedNameÚcanonicalize_name)ÚCommandErrorT)Úslotsc                  ó”   • \ rS rSr% Sr\" \S9rS\S'   \" \S9r	S\S'   \" S\
SSS9rS	\S
'             SS jrSS jrSS jrSrg)ÚReleaseControlé
   z9Helper for managing which release types can be installed.)Údefault_factoryúset[str]Úall_releasesÚ
only_finalF)Úinitr   ÚcompareÚreprúlist[tuple[str, str]]Ú_orderc                ój  • UR                  S5      (       a  [        S5      eUR                  S5      nSU;   at  UR                  5         UR                  5         UR	                  S5        U R
                  R                  US45        USUR                  S5      S-   2	 SU;  a  gSU;   a  Mt  U H�  nUS:X  a/  UR                  5         U R
                  R                  US45        M8  [        U5      nUR                  U5        UR	                  U5        U R
                  R                  XF45        Mƒ     g)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          Úh/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/models/release_control.pyÚhandle_mutual_excludesÚ%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×Ñ 	Ð0Ö1ò ó    c                ó    • U R                   SS $ )at  
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_argsÚReleaseControl.get_ordered_args;   s   € ð �{‰{™1ˆ~Ðr,   c                óˆ   • XR                   ;   a  gXR                  ;   a  gSU R                   ;   a  gSU R                  ;   a  gg)zð
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_prereleasesÚ!ReleaseControl.allows_prereleasesJ   sC   € ð ×.Ñ.Ó.ØØŸ™Ó.ØØ˜×)Ñ)Ó)ØØ˜Ÿ™Ó'ØØr,   © N)
r#   Ústrr$   r   r%   r   r&   r5   ÚreturnÚNone)r6   r   )r1   r   r6   zbool | None)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úsetr   Ú__annotations__r   Úlistr   r*   r.   r2   Ú__static_attributes__r4   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   r4   r,   r)   Ú<module>rE      s2   ðÝ "ç (ç Iå 1ñ �Ñ÷Pð Pó ñPr,   