U
    cUh	                     @   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 krt  }|d krt  }|| _|| _d S N)setr   r	   )selfr   r	    r   c/opt/bot/vods_filmes/script/venv/lib/python3.8/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>!   s     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|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)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 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   r1   resultr   r   r   get_allowed_formats=   s    




z!FormatControl.get_allowed_formatsc                 C   s   |  d| j| j d S )Nr&   )r0   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!   staticmethodr0   r   r6   r7   r   r   r   r   r      s     

	r   N)	typingr   r   r   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   r   r   r   r   r   <module>   s   