ó
jˇĂ^c           @   so   d  d l  m Z d  d l m Z d  d l m Z e rU d  d l m Z m Z m	 Z	 n  d e
 f d     YZ d S(   i˙˙˙˙(   t   canonicalize_name(   t   CommandError(   t   MYPY_CHECK_RUNNING(   t   Optionalt   Sett	   FrozenSett   FormatControlc           B   sY   e  Z d  Z d d d  Z d   Z d   Z d   Z e d    Z	 d   Z
 d   Z RS(	   sG   Helper for managing formats from which a package can be installed.
    c         C   sF   | d  k r t   } n  | d  k r0 t   } n  | |  _ | |  _ d  S(   N(   t   Nonet   sett	   no_binaryt   only_binary(   t   selfR	   R
   (    (    s4   site-packages/pip/_internal/models/format_control.pyt   __init__   s    	c         C   s   |  j  | j  k S(   N(   t   __dict__(   R   t   other(    (    s4   site-packages/pip/_internal/models/format_control.pyt   __eq__   s    c         C   s   |  j  |  S(   N(   R   (   R   R   (    (    s4   site-packages/pip/_internal/models/format_control.pyt   __ne__   s    c         C   s   d j  |  j j |  j |  j  S(   Ns
   {}({}, {})(   t   formatt	   __class__t   __name__R	   R
   (   R   (    (    s4   site-packages/pip/_internal/models/format_control.pyt   __repr__#   s    	c         C   sÜ   |  j  d  r t d   n  |  j d  } xU d | k r | j   | j   | j d  | | j d  d 4d | k r0 d  Sq0 WxP | D]H } | d k rŽ | j   q n  t |  } | j |  | j |  q Wd  S(   Nt   -s7   --no-binary / --only-binary option requires 1 argument.t   ,s   :all:i   s   :none:(   t
   startswithR   t   splitt   cleart   addt   indexR    t   discard(   t   valuet   targetR   t   newt   name(    (    s4   site-packages/pip/_internal/models/format_control.pyt   handle_mutual_excludes+   s$    


c         C   s   d d h } | |  j  k r+ | j d  n] | |  j k rJ | j d  n> d |  j  k ri | j d  n d |  j k r | j d  n  t |  S(   Nt   binaryt   sources   :all:(   R
   R   R	   t	   frozenset(   R   t   canonical_namet   result(    (    s4   site-packages/pip/_internal/models/format_control.pyt   get_allowed_formatsC   s    c         C   s   |  j  d |  j |  j  d  S(   Ns   :all:(   R!   R	   R
   (   R   (    (    s4   site-packages/pip/_internal/models/format_control.pyt   disallow_binariesP   s    N(   R   t
   __module__t   __doc__R   R   R   R   R   t   staticmethodR!   R'   R(   (    (    (    s4   site-packages/pip/_internal/models/format_control.pyR      s   
				N(   t   pip._vendor.packaging.utilsR    t   pip._internal.exceptionsR   t   pip._internal.utils.typingR   t   typingR   R   R   t   objectR   (    (    (    s4   site-packages/pip/_internal/models/format_control.pyt   <module>   s
   