ó
Ð²Ebc           @   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	   FrozenSett   Optionalt   Sett   FormatControlc           B   se   e  Z d  Z d d g 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.
    t	   no_binaryt   only_binaryc         C   sF   | d  k r t ƒ  } n  | d  k r0 t ƒ  } n  | |  _ | |  _ d  S(   N(   t   Nonet   setR   R   (   t   selfR   R   (    (    s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pyt   __init__   s    	c            sL   t  ˆ  ˆ j ƒ s t Sˆ j ˆ  j k r, t St ‡  ‡ f d †  ˆ j Dƒ ƒ S(   Nc         3   s-   |  ]# } t  ˆ | ƒ t  ˆ  | ƒ k Vq d  S(   N(   t   getattr(   t   .0t   k(   t   otherR   (    s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pys	   <genexpr>#   s   (   t
   isinstancet	   __class__t   NotImplementedt	   __slots__t   Falset   all(   R   R   (    (   R   R   s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pyt   __eq__   s    c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pyt   __ne__'   s    c         C   s   d j  |  j j |  j |  j ƒ S(   Ns
   {}({}, {})(   t   formatR   t   __name__R   R   (   R   (    (    s@   /tmp/pip-build-UPPWic/pip/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(    (    s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pyt   handle_mutual_excludes3   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(    (    s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pyt   get_allowed_formatsK   s    c         C   s   |  j  d |  j |  j ƒ d  S(   Ns   :all:(   R(   R   R   (   R   (    (    s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pyt   disallow_binariesX   s    N(   R   t
   __module__t   __doc__R   R	   R   R   R   R   t   staticmethodR(   R.   R/   (    (    (    s@   /tmp/pip-build-UPPWic/pip/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   (    (    (    s@   /tmp/pip-build-UPPWic/pip/pip/_internal/models/format_control.pyt   <module>   s
   