o
    h	                     @  s6   d dl mZ d dlmZ d dlmZ G dd dZdS )    )annotations)canonicalize_name)CommandErrorc                   @  s^   e Zd ZdZddgZ		dddd	ZdddZd ddZed!ddZ	d"ddZ
d#ddZdS )$FormatControlzBHelper for managing formats from which a package can be installed.	no_binaryonly_binaryNset[str] | NonereturnNonec                 C  s,   |d u rt  }|d u rt  }|| _|| _d S N)setr   r   )selfr   r    r   V/var/www/html/venv/lib/python3.10/site-packages/pip/_internal/models/format_control.py__init__   s   
zFormatControl.__init__otherobjectboolc                   s:   t  jstS j jkrdS t fddjD S )NFc                 3  s$    | ]}t |t  |kV  qd S r   )getattr).0kr   r   r   r   	<genexpr>!   s   " z'FormatControl.__eq__.<locals>.<genexpr>)
isinstance	__class__NotImplemented	__slots__all)r   r   r   r   r   __eq__   s
   zFormatControl.__eq__strc                 C  s   | j j d| j d| j dS )N(z, ))r   __name__r   r   r   r   r   r   __repr__#   s   zFormatControl.__repr__valuetargetset[str]c                 C  s   |  dr	td| d}d|v r3|  |  |d |d |dd = d|vr/d S d|v s|D ]}|dkr@|  q5t|}|| || q5d S )N-z7--no-binary / --only-binary option requires 1 argument.,:all:   z:none:)
startswithr   splitclearaddindexr   discard)r%   r&   r   newnamer   r   r   handle_mutual_excludes&   s*   



z$FormatControl.handle_mutual_excludescanonical_namefrozenset[str]c                 C  sx   ddh}|| j v r|d t|S || jv r |d t|S d| j v r.|d t|S d| jv r8|d t|S )Nbinarysourcer*   )r   r1   r   	frozenset)r   r5   resultr   r   r   get_allowed_formats=   s   







z!FormatControl.get_allowed_formatsc                 C  s   |  d| j| j d S )Nr*   )r4   r   r   r#   r   r   r   disallow_binariesI   s
   zFormatControl.disallow_binaries)NN)r   r   r   r   r	   r
   )r   r   r	   r   )r	   r   )r%   r   r&   r'   r   r'   r	   r
   )r5   r   r	   r6   )r	   r
   )r"   
__module____qualname____doc__r   r   r   r$   staticmethodr4   r;   r<   r   r   r   r   r      s    

	
r   N)
__future__r   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   r   r   r   r   r   <module>   s    