
    ,i	                    <    d dl mZ d dlmZ d dlmZ  G d d      Zy)    )annotations)canonicalize_name)CommandErrorc                  b    e Zd ZdZddgZ	 	 d	 	 	 	 	 ddZddZddZedd       Z	dd	Z
dd
Zy)FormatControlzBHelper for managing formats from which a package can be installed.	no_binaryonly_binaryNc                P    |
t               }|
t               }|| _        || _        y N)setr   r	   )selfr   r	   s      W/var/www/mymood/env/lib/python3.12/site-packages/pip/_internal/models/format_control.py__init__zFormatControl.__init__   s-    
 I%K"&    c                     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kotherr   s     r   	<genexpr>z'FormatControl.__eq__.<locals>.<genexpr>!   s%     Q.Q74#wua'88.s   #&)
isinstance	__class__NotImplemented	__slots__all)r   r   s   ``r   __eq__zFormatControl.__eq__   s?    %0!!>>U__,Q$..QQQr   c                h    | j                   j                   d| j                   d| j                   dS )N(z, ))r   __name__r   r	   r   s    r   __repr__zFormatControl.__repr__#   s2    ..))*!DNN+;2d>N>N=OqQQr   c                   | 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)valuetargetr   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   c                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	   r.   r   	frozenset)r   canonical_name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'   )r3   r   r	   r"   s    r   disallow_binarieszFormatControl.disallow_binariesI   s#    ##NN	
r   )NN)r   set[str] | Noner	   r=   returnNone)r   objectr>   bool)r>   str)r/   rB   r0   set[str]r   rC   r>   r?   )r8   rB   r>   zfrozenset[str])r>   r?   )r!   
__module____qualname____doc__r   r   r   r#   staticmethodr3   r:   r<    r   r   r   r      sb    Lm,I &*'+'"' %' 
	'RR  ,
!
r   r   N)
__future__r   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   r   rH   r   r   <module>rL      s    " 9 1F
 F
r   