
    df	                     D    d dl mZmZmZ d dlmZ d dlmZ  G d d      Zy)    )	FrozenSetOptionalSet)canonicalize_name)CommandErrorc            	           e Zd ZdZddgZ	 	 ddeee      deee      ddfdZde	de
fdZdefd	Zed
edee   dee   ddfd       Zdedee   fdZddZy)FormatControlzBHelper for managing formats from which a package can be installed.	no_binaryonly_binaryNreturnc                 P    |
t               }|
t               }|| _        || _        y N)setr
   r   )selfr
   r   s      \/home/api-vastappli/venv/lib/python3.12/site-packages/pip/_internal/models/format_control.py__init__zFormatControl.__init__   s-    
 I%K"&    otherc                      t         j                        st        S  j                  j                  k7  ryt	         fd j                  D              S )NFc              3   P   K   | ]  }t        |      t        |      k(    y wr   )getattr).0kr   r   s     r   	<genexpr>z'FormatControl.__eq__.<locals>.<genexpr>!   s$     QQ74#wua'88Qs   #&)
isinstance	__class__NotImplemented	__slots__all)r   r   s   ``r   __eq__zFormatControl.__eq__   s?    %0!!>>U__,Q$..QQQr   c                 x    dj                  | j                  j                  | j                  | j                        S )Nz
{}({}, {}))formatr   __name__r
   r   r   s    r   __repr__zFormatControl.__repr__#   s0    ""NN##T^^T5E5E
 	
r   valuetargetc                    | j                  d      rt        d      | j                  d      }d|v rR|j                          |j                          |j	                  d       |d |j                  d      dz   = d|vry d|v rR|D ]E  }|dk(  r|j                          t        |      }|j                  |       |j	                  |       G y )N-z7--no-binary / --only-binary option requires 1 argument.,:all:   z:none:)
startswithr   splitclearaddindexr   discard)r&   r'   r   newnames        r   handle_mutual_excludesz$FormatControl.handle_mutual_excludes(   s    C I  kk#nKKMLLNJJw,cii(1,,-s" n  	Dx$T*DMM$JJt	r   canonical_namec                 Z   ddh}|| j                   v r|j                  d       t        |      S || j                  v r|j                  d       t        |      S d| j                   v r|j                  d       t        |      S d| j                  v r|j                  d       t        |      S )Nbinarysourcer+   )r   r2   r
   	frozenset)r   r6   results      r   get_allowed_formatsz!FormatControl.get_allowed_formats?   s    H%T---NN8$    t~~-NN8$
   	 (((NN8$    &NN8$  r   c                 R    | j                  d| j                  | j                         y )Nr+   )r5   r
   r   r$   s    r   disallow_binarieszFormatControl.disallow_binariesK   s#    ##NN	
r   )NN)r   N)r#   
__module____qualname____doc__r   r   r   strr   objectboolr    r%   staticmethodr5   r   r<   r>    r   r   r	   r	      s    Lm,I )-*.'CH%' c#h'' 
	'RF Rt R
# 

 c 3s8 CH QU  ,
!# 
!)C. 
!
r   r	   N)	typingr   r   r   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   r	   rF   r   r   <module>rJ      s    + + 9 1H
 H
r   