
    eg	                     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      /var/www/html/FastMealFinder_FlaskServer-InitialRelease/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                 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   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   r3   r
   	frozenset)r   r7   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,   )r6   r
   r   r%   s    r   disallow_binarieszFormatControl.disallow_binariesI   s#    ##NN	
r   )NN)r   N)r$   
__module____qualname____doc__r   r   r   strr   objectboolr    r&   staticmethodr6   r   r=   r?    r   r   r	   r	      s    Lm,I )-*.'CH%' c#h'' 
	'RF Rt RR# R c 3s8 CH QU  ,
!# 
!)C. 
!
r   r	   N)	typingr   r   r   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   r	   rG   r   r   <module>rK      s    + + 9 1F
 F
r   