a
    0f	                     @   s>   d dl mZmZmZ d dlmZ d dlmZ G dd dZdS )    )	FrozenSetOptionalSet)canonicalize_name)CommandErrorc                   @   s   e Zd ZdZddgZdeee  eee  ddddZe	e
dd	d
ZedddZeeee ee ddddZeee dddZddddZdS )FormatControlzBHelper for managing formats from which a package can be installed.	no_binaryonly_binaryN)r   r	   returnc                 C   s,   |d u rt  }|d u rt  }|| _|| _d S N)setr   r	   )selfr   r	    r   \/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py__init__   s    zFormatControl.__init__)otherr
   c                    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>!       z'FormatControl.__eq__.<locals>.<genexpr>)
isinstance	__class__NotImplemented	__slots__all)r   r   r   r   r   __eq__   s
    zFormatControl.__eq__)r
   c                 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targetr   r
   c                 C   s   |  drtd| d}d|v r`|  |  |d |d |dd = d|vrd S q|D ]2}|dkrz|  qdt|}|| || qdd 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_namer
   c                 C   sf   ddh}|| j v r|d n@|| jv r4|d n*d| j v rJ|d nd| jv r^|d t|S )Nbinarysourcer'   )r	   r.   r   	frozenset)r   r2   resultr   r   r   get_allowed_formats=   s    




z!FormatControl.get_allowed_formatsc                 C   s   |  d| j| j d S )Nr'   )r1   r   r	   r!   r   r   r   disallow_binariesI   s
    zFormatControl.disallow_binaries)NN)r    
__module____qualname____doc__r   r   r   strr   objectboolr   r"   staticmethodr1   r   r7   r8   r   r   r   r   r      s     

	r   N)	typingr   r   r   Zpip._vendor.packaging.utilsr   pip._internal.exceptionsr   r   r   r   r   r   <module>   s   