o
    a+)h	                     @   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deee  deee  ddfddZde	de
fd	d
ZdefddZededee dee ddfddZdedee fddZdddZdS )FormatControlzBHelper for managing formats from which a package can be installed.	no_binaryonly_binaryNreturnc                 C   s,   |d u rt  }|d u rt  }|| _|| _d S N)setr   r	   )selfr   r	    r   bC:\Users\User\Downloads\Proyecto_IoT\venv\Lib\site-packages\pip/_internal/models/format_control.py__init__   s   
zFormatControl.__init__otherc                    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__c                 C   s   d | jj| j| jS )Nz
{}({}, {}))formatr   __name__r   r	   r   r   r   r   __repr__#   s   zFormatControl.__repr__valuetargetc                 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_namec                 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	   r,   r   	frozenset)r   r0   resultr   r   r   get_allowed_formats?   s   







z!FormatControl.get_allowed_formatsc                 C   s   |  d| j| j d S )Nr%   )r/   r   r	   r   r   r   r   disallow_binariesK   s
   zFormatControl.disallow_binaries)NN)r
   N)r   
__module____qualname____doc__r   r   r   strr   objectboolr   r    staticmethodr/   r   r5   r6   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    