B
    `’»dq
  ã               @   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-hu9qqap1/pip/_internal/models/format_control.pyÚ__init__   s    zFormatControl.__init__c             C   s   | j |j kS )N)Ú__dict__)r   Úotherr   r   r   Ú__eq__   s    zFormatControl.__eq__c             C   s   |   |¡ S )N)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¡}xFd|krb| ¡  | ¡  | d¡ |d | d¡d …= d|krd S qW x:|D ]2}|dkr€| ¡  qjt|ƒ}| |¡ | |¡ qjW d S )Nú-z7--no-binary / --only-binary option requires 1 argument.ú,z: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Úsourcez:all:)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 )Nz:all:)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+   r,   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
   