U
    eq
                     @   sP   d dl mZ d dlmZ d dlmZ er<d dlmZmZm	Z	 G dd de
ZdS )    )canonicalize_name)CommandError)MYPY_CHECK_RUNNING)OptionalSet	FrozenSetc                   @   sN   e Zd ZdZdddZdd Zdd Zd	d
 Zedd Z	dd Z
dd ZdS )FormatControlzGHelper for managing formats from which a package can be installed.
    Nc                 C   s,   |d krt  }|d krt  }|| _|| _d S N)set	no_binaryonly_binary)selfr   r    r   G/tmp/pip-unpacked-wheel-indi3crb/pip/_internal/models/format_control.py__init__   s    zFormatControl.__init__c                 C   s   | j |j kS r	   )__dict__r   otherr   r   r   __eq__   s    zFormatControl.__eq__c                 C   s   |  | S r	   )r   r   r   r   r   __ne__   s    zFormatControl.__ne__c                 C   s   d | jj| j| jS )Nz
{}({}, {}))format	__class____name__r   r   r   r   r   r   __repr__#   s
    zFormatControl.__repr__c                 C   s   |  drtd| d}d|kr`|  |  |d |d |dd = d|k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)valuetargetr   newnamer   r   r   handle_mutual_excludes+   s&    



z$FormatControl.handle_mutual_excludesc                 C   sf   ddh}|| j kr|d n@|| jkr4|d n*d| j krJ|d nd| jkr^|d t|S )Nbinarysourcer   )r   r$   r   	frozenset)r   canonical_nameresultr   r   r   get_allowed_formatsC   s    




z!FormatControl.get_allowed_formatsc                 C   s   |  d| j| j d S )Nr   )r)   r   r   r   r   r   r   disallow_binariesP   s
      zFormatControl.disallow_binaries)NN)r   
__module____qualname____doc__r   r   r   r   staticmethodr)   r/   r0   r   r   r   r   r      s   


r   N)pip._vendor.packaging.utilsr   pip._internal.exceptionsr   pip._internal.utils.typingr   typingr   r   r   objectr   r   r   r   r   <module>   s
   