a
    bai	                     @  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ddd	Zd
ddddZddddZedddddddZ	dd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_binaryNzset[str] | NoneNone)r   r   returnc                 C  s,   |d u rt  }|d u rt  }|| _|| _d S N)setr   r   )selfr   r    r   ]/var/www/html/SiteWeb/venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py__init__   s    zFormatControl.__init__objectbool)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__str)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__zset[str])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_excludeszfrozenset[str])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   r0   r   	frozenset)r   r4   resultr   r   r   get_allowed_formats=   s    




z!FormatControl.get_allowed_formatsc                 C  s   |  d| j| j d S )Nr)   )r3   r   r   r#   r   r   r   disallow_binariesI   s
    zFormatControl.disallow_binaries)NN)r"   
__module____qualname____doc__r   r   r   r$   staticmethodr3   r9   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   