ó
^†êWc           @` s<  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z d d l m	 Z	 m
 Z
 d d l m Z m Z m Z d e f d „  ƒ  YZ d e
 e j e ƒ f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ e j d ƒ Z d „  Z d „  Z d e f d „  ƒ  YZ d S(   i    (   t   absolute_importt   divisiont   print_functionNi   (   t   string_typest   with_metaclass(   t   Versiont   LegacyVersiont   parset   InvalidSpecifierc           B` s   e  Z d  Z RS(   sH   
    An invalid specifier was found, users should refer to PEP 440.
    (   t   __name__t
   __module__t   __doc__(    (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR      s   t   BaseSpecifierc           B` sž   e  Z e j d  „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z	 e	 j
 d „  ƒ Z	 e j d d „ ƒ Z e j d d „ ƒ Z RS(	   c         C` s   d S(   sŽ   
        Returns the str representation of this Specifier like object. This
        should be representative of the Specifier itself.
        N(    (   t   self(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __str__   s    c         C` s   d S(   sF   
        Returns a hash value for this Specifier like object.
        N(    (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __hash__   s    c         C` s   d S(   sq   
        Returns a boolean representing whether or not the two Specifier like
        objects are equal.
        N(    (   R   t   other(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __eq__$   s    c         C` s   d S(   su   
        Returns a boolean representing whether or not the two Specifier like
        objects are not equal.
        N(    (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __ne__+   s    c         C` s   d S(   sg   
        Returns whether or not pre-releases as a whole are allowed by this
        specifier.
        N(    (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   prereleases2   s    c         C` s   d S(   sd   
        Sets whether or not pre-releases as a whole are allowed by this
        specifier.
        N(    (   R   t   value(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   9   s    c         C` s   d S(   sR   
        Determines if the given item is contained within this specifier.
        N(    (   R   t   itemR   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   contains@   s    c         C` s   d S(   s•   
        Takes an iterable of items and filters them so that only items which
        are contained within this specifier are allowed in it.
        N(    (   R   t   iterableR   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   filterF   s    N(   R	   R
   t   abct   abstractmethodR   R   R   R   t   abstractpropertyR   t   settert   NoneR   R   (    (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR      s   t   _IndividualSpecifierc           B` s¼   e  Z i  Z d  d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z e j d „  ƒ Z d „  Z d d „ Z d d „ Z RS(   t    c         C` sj   |  j  j | ƒ } | s0 t d j | ƒ ƒ ‚ n  | j d ƒ j ƒ  | j d ƒ j ƒ  f |  _ | |  _ d  S(   Ns   Invalid specifier: '{0}'t   operatort   version(   t   _regext   searchR   t   formatt   groupt   stript   _spect   _prereleases(   R   t   specR   t   match(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __init__R   s    c         C` sF   |  j  d  k	 r! d j |  j ƒ n d } d j |  j j t |  ƒ | ƒ S(   Ns   , prereleases={0!r}R   s   <{0}({1!r}{2})>(   R(   R   R$   R   t	   __class__R	   t   str(   R   t   pre(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __repr___   s    !		c         C` s   d j  |  j Œ  S(   Ns   {0}{1}(   R$   R'   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   l   s    c         C` s   t  |  j ƒ S(   N(   t   hashR'   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   o   s    c         C` s`   t  | t ƒ r: y |  j | ƒ } WqP t k
 r6 t SXn t  | |  j ƒ sP t S|  j | j k S(   N(   t
   isinstanceR   R,   R   t   NotImplementedR'   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   r   s    c         C` s`   t  | t ƒ r: y |  j | ƒ } WqP t k
 r6 t SXn t  | |  j ƒ sP t S|  j | j k S(   N(   R1   R   R,   R   R2   R'   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   }   s    c         C` s   t  |  d j |  j | ƒ ƒ S(   Ns   _compare_{0}(   t   getattrR$   t
   _operators(   R   t   op(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _get_operatorˆ   s    c         C` s(   t  | t t f ƒ s$ t | ƒ } n  | S(   N(   R1   R   R   R   (   R   R!   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _coerce_version‹   s    c         C` s   |  j  d S(   Ni    (   R'   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR       s    c         C` s   |  j  d S(   Ni   (   R'   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR!   ”   s    c         C` s   |  j  S(   N(   R(   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   ˜   s    c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   œ   s    c         C` s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __contains__    s    c         C` sW   | d  k r |  j } n  |  j | ƒ } | j r; | r; t S|  j |  j ƒ | |  j ƒ S(   N(   R   R   R7   t   is_prereleaset   FalseR6   R    R!   (   R   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   £   s    c         c` s¾   t  } g  } i | d  k	 r! | n t d 6} xf | D]^ } |  j | ƒ } |  j | |  r2 | j r‚ | pn |  j r‚ | j | ƒ q t } | Vq2 q2 W| rº | rº x | D] } | Vq¨ Wn  d  S(   NR   (   R:   R   t   TrueR7   R   R9   R   t   append(   R   R   R   t   yieldedt   found_prereleasest   kwR!   t   parsed_version(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   ¶   s    	N(   R	   R
   R4   R   R+   R/   R   R   R   R   R6   R7   t   propertyR    R!   R   R   R8   R   R   (    (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   N   s    								t   LegacySpecifierc           B` s¡   e  Z d  Z e j d e d e j e j Bƒ Z i d d 6d d 6d d 6d	 d
 6d d 6d d 6Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sÛ  
        (?P<operator>(==|!=|<=|>=|<|>))
        \s*
        (?P<version>
            [^,;\s)]* # Since this is a "legacy" specifier, and the version
                      # string can be just about anything, we match everything
                      # except for whitespace, a semi-colon for marker support,
                      # a closing paren since versions can be enclosed in
                      # them, and a comma since it's a version separator.
        )
        s   ^\s*s   \s*$t   equals   ==t	   not_equals   !=t   less_than_equals   <=t   greater_than_equals   >=t	   less_thant   <t   greater_thant   >c         C` s(   t  | t ƒ s$ t t | ƒ ƒ } n  | S(   N(   R1   R   R-   (   R   R!   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR7   ò   s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   t   prospectiveR)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_equal÷   s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_not_equalú   s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_less_than_equalý   s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_greater_than_equal   s    c         C` s   | |  j  | ƒ k  S(   N(   R7   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_less_than  s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_greater_than  s    (   R	   R
   t
   _regex_strt   ret   compilet   VERBOSEt
   IGNORECASER"   R4   R7   RL   RM   RN   RO   RP   RQ   (    (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRB   Ö   s"   
						c         ` s"   t  j ˆ  ƒ ‡  f d †  ƒ } | S(   Nc         ` s#   t  | t ƒ s t Sˆ  |  | | ƒ S(   N(   R1   R   R:   (   R   RK   R)   (   t   fn(    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   wrapped  s    (   t	   functoolst   wraps(   RW   RX   (    (   RW   sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _require_version_compare
  s    t	   Specifierc           B` s  e  Z d  Z e j d e d e j e j Bƒ Z i d d 6d d 6d d 6d	 d
 6d d 6d d 6d d 6d d 6Z e	 d „  ƒ Z
 e	 d „  ƒ Z e	 d „  ƒ Z e	 d „  ƒ Z e	 d „  ƒ Z e	 d „  ƒ Z e	 d „  ƒ Z d „  Z e d „  ƒ Z e j d „  ƒ Z RS(   s  
        (?P<operator>(~=|==|!=|<=|>=|<|>|===))
        (?P<version>
            (?:
                # The identity operators allow for an escape hatch that will
                # do an exact string match of the version you wish to install.
                # This will not be parsed by PEP 440 and we cannot determine
                # any semantic meaning from it. This operator is discouraged
                # but included entirely as an escape hatch.
                (?<====)  # Only match for the identity operator
                \s*
                [^\s]*    # We just match everything, except for whitespace
                          # since we are only testing for strict identity.
            )
            |
            (?:
                # The (non)equality operators allow for wild card and local
                # versions to be specified so we have to define these two
                # operators separately to enable that.
                (?<===|!=)            # Only match for equals and not equals

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?

                # You cannot use a wild card and a dev or local version
                # together so group them with a | and make them optional.
                (?:
                    (?:[-_\.]?dev[-_\.]?[0-9]*)?         # dev release
                    (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local
                    |
                    \.\*  # Wild card syntax of .*
                )?
            )
            |
            (?:
                # The compatible operator requires at least two digits in the
                # release segment.
                (?<=~=)               # Only match for the compatible operator

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)+   # release  (We have a + instead of a *)
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
            |
            (?:
                # All other operators only allow a sub set of what the
                # (non)equality operators do. Specifically they do not allow
                # local versions to be specified nor do they allow the prefix
                # matching wild cards.
                (?<!==|!=|~=)         # We have special cases for these
                                      # operators so we want to make sure they
                                      # don't match here.

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
        )
        s   ^\s*s   \s*$t
   compatibles   ~=RC   s   ==RD   s   !=RE   s   <=RF   s   >=RG   RH   RI   RJ   t	   arbitrarys   ===c         C` sf   d j  t t j d „  t | ƒ ƒ ƒ d  ƒ } | d 7} |  j d ƒ | | ƒ oe |  j d ƒ | | ƒ S(   Nt   .c         S` s   |  j  d ƒ o |  j  d ƒ S(   Nt   postt   dev(   t
   startswith(   t   x(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   <lambda>  s   iÿÿÿÿs   .*s   >=s   ==(   t   joint   listt	   itertoolst	   takewhilet   _version_splitR6   (   R   RK   R)   t   prefix(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_compatible‚  s    

c         C` s™   | j  d ƒ rh t | j ƒ } t | d  ƒ } t t | ƒ ƒ } | t | ƒ  } t | | ƒ \ } } n' t | ƒ } | j s t | j ƒ } n  | | k S(   Ns   .*iþÿÿÿ(   t   endswithR   t   publicRi   R-   t   lent   _pad_versiont   local(   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRL     s    	c         C` s   |  j  | | ƒ S(   N(   RL   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRM   À  s    c         C` s   | t  | ƒ k S(   N(   R   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRN   Ä  s    c         C` s   | t  | ƒ k S(   N(   R   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRO   È  s    c         C` sX   t  | ƒ } | | k  s t S| j rT | j rT t  | j ƒ t  | j ƒ k rT t Sn  t S(   N(   R   R:   R9   t   base_versionR;   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRP   Ì  s    c         C` sŒ   t  | ƒ } | | k s t S| j rT | j rT t  | j ƒ t  | j ƒ k rT t Sn  | j d  k	 rˆ t  | j ƒ t  | j ƒ k rˆ t Sn  t S(   N(   R   R:   t   is_postreleaseRq   Rp   R   R;   (   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRQ   å  s    c         C` s"   t  | ƒ j ƒ  t  | ƒ j ƒ  k S(   N(   R-   t   lower(   R   RK   R)   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   _compare_arbitrary  s    c         C` ss   |  j  d  k	 r |  j  S|  j \ } } | d k ro | d k rY | j d ƒ rY | d  } n  t | ƒ j ro t Sn  t S(	   Ns   ==s   >=s   <=s   ~=s   ===s   .*iþÿÿÿ(   s   ==s   >=s   <=s   ~=s   ===(   R(   R   R'   Rl   R   R9   R;   R:   (   R   R    R!   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR     s    c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR     s    (   R	   R
   RR   RS   RT   RU   RV   R"   R4   R[   Rk   RL   RM   RN   RO   RP   RQ   Rt   RA   R   R   (    (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR\     s,   ^
#	s   ^([0-9]+)((?:a|b|c|rc)[0-9]+)$c         C` s\   g  } xO |  j  d ƒ D]> } t j | ƒ } | rG | j | j ƒ  ƒ q | j | ƒ q W| S(   NR_   (   t   splitt   _prefix_regexR#   t   extendt   groupsR<   (   R!   t   resultR   R*   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRi   '  s    c      	   C` s  g  g  } } | j  t t j d „  |  ƒ ƒ ƒ | j  t t j d „  | ƒ ƒ ƒ | j  |  t | d ƒ ƒ | j  | t | d ƒ ƒ | j d d g t d t | d ƒ t | d ƒ ƒ ƒ | j d d g t d t | d ƒ t | d ƒ ƒ ƒ t t j | Œ  ƒ t t j | Œ  ƒ f S(   Nc         S` s
   |  j  ƒ  S(   N(   t   isdigit(   Rc   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRd   6  s    c         S` s
   |  j  ƒ  S(   N(   Rz   (   Rc   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRd   7  s    i    i   t   0(   R<   Rf   Rg   Rh   Rn   t   insertt   maxt   chain(   t   leftt   rightt
   left_splitt   right_split(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRo   2  s    ""//t   SpecifierSetc           B` s¡   e  Z d  d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z e d
 „  ƒ Z e j d „  ƒ Z d „  Z d d „ Z d d „ Z RS(   R   c         C` s¨   g  | j  d ƒ D] } | j ƒ  r | j ƒ  ^ q } t ƒ  } xL | D]D } y | j t | ƒ ƒ WqD t k
 r‡ | j t | ƒ ƒ qD XqD Wt | ƒ |  _ | |  _	 d  S(   Nt   ,(
   Ru   R&   t   sett   addR\   R   RB   t	   frozensett   _specsR(   (   R   t
   specifiersR   t   st   parsedt	   specifier(    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR+   O  s    4	c         C` s=   |  j  d  k	 r! d j |  j ƒ n d } d j t |  ƒ | ƒ S(   Ns   , prereleases={0!r}R   s   <SpecifierSet({0!r}{1})>(   R(   R   R$   R   R-   (   R   R.   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR/   d  s    !c         C` s    d j  t d „  |  j Dƒ ƒ ƒ S(   NR„   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R-   (   t   .0RŠ   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pys	   <genexpr>n  s    (   Re   t   sortedRˆ   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   m  s    c         C` s   t  |  j ƒ S(   N(   R0   Rˆ   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   p  s    c         C` sÞ   t  | t ƒ r t | ƒ } n t  | t ƒ s1 t St ƒ  } t |  j | j Bƒ | _ |  j d  k r€ | j d  k	 r€ | j | _ nZ |  j d  k	 r­ | j d  k r­ |  j | _ n- |  j | j k rÎ |  j | _ n t d ƒ ‚ | S(   NsF   Cannot combine SpecifierSets with True and False prerelease overrides.(	   R1   R   Rƒ   R2   R‡   Rˆ   R(   R   t
   ValueError(   R   R   RŒ   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __and__s  s    		c         C` se   t  | t ƒ r t | ƒ } n7 t  | t ƒ rB t t | ƒ ƒ } n t  | t ƒ sU t S|  j | j k S(   N(   R1   R   Rƒ   R   R-   R2   Rˆ   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   Š  s    c         C` se   t  | t ƒ r t | ƒ } n7 t  | t ƒ rB t t | ƒ ƒ } n t  | t ƒ sU t S|  j | j k S(   N(   R1   R   Rƒ   R   R-   R2   Rˆ   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   ”  s    c         C` s   t  |  j ƒ S(   N(   Rn   Rˆ   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __len__ž  s    c         C` s   t  |  j ƒ S(   N(   t   iterRˆ   (   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   __iter__¡  s    c         C` s:   |  j  d  k	 r |  j  S|  j s# d  St d „  |  j Dƒ ƒ S(   Nc         s` s   |  ] } | j  Vq d  S(   N(   R   (   R   RŠ   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pys	   <genexpr>³  s    (   R(   R   Rˆ   t   any(   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   ¤  s
    	c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   µ  s    c         C` s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR8   ¹  s    c         ` sp   t  ˆ  t t f ƒ s$ t ˆ  ƒ ‰  n  ˆ d  k r< |  j ‰ n  ˆ rP ˆ  j rP t St ‡  ‡ f d †  |  j	 Dƒ ƒ S(   Nc         3` s$   |  ] } | j  ˆ  d  ˆ ƒVq d S(   R   N(   R   (   R   RŠ   (   R   R   (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pys	   <genexpr>Õ  s   (
   R1   R   R   R   R   R   R9   R:   t   allRˆ   (   R   R   R   (    (   R   R   sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   ¼  s    c         C` s  | d  k r |  j } n  |  j rT x, |  j D]! } | j | d t | ƒ ƒ} q+ W| Sg  } g  } xƒ | D]{ } t | t t f ƒ s‘ t | ƒ } n | } t | t ƒ r¬ qg n  | j	 rÕ | rÕ | sâ | j
 | ƒ qâ qg | j
 | ƒ qg W| r| r| d  k r| S| Sd  S(   NR   (   R   R   Rˆ   R   t   boolR1   R   R   R   R9   R<   (   R   R   R   R)   t   filteredR>   R   R@   (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyR   Ù  s*    	N(   R	   R
   R   R+   R/   R   R   R   R   R   R‘   R“   RA   R   R   R8   R   R   (    (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyRƒ   M  s   						
	
			(   t
   __future__R    R   R   R   RY   Rg   RS   t   _compatR   R   R!   R   R   R   R   R   t   ABCMetat   objectR   R   RB   R[   R\   RT   Rv   Ri   Ro   Rƒ   (    (    (    sq   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/specifiers.pyt   <module>   s"   "9ˆ4		ÿ 		