ó
¨9Vc           @` 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__(    (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   __str__!   s    c         C` s   d S(   sF   
        Returns a hash value for this Specifier like object.
        N(    (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   __ne__5   s    c         C` s   d S(   sg   
        Returns whether or not pre-releases as a whole are allowed by this
        specifier.
        N(    (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   prereleases<   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(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   C   s    c         C` s   d S(   sR   
        Determines if the given item is contained within this specifier.
        N(    (   R   t   itemR   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   containsJ   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   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   filterP   s    N(   R	   R
   t   abct   abstractmethodR   R   R   R   t   abstractpropertyR   t   settert   NoneR   R   (    (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   __init__\   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(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   __repr__i   s    !		c         C` s   d j  |  j Œ  S(   Ns   {0}{1}(   R$   R'   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   v   s    c         C` s   t  |  j ƒ S(   N(   t   hashR'   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   y   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   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   |   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   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   ‡   s    c         C` s   t  |  d j |  j | ƒ ƒ S(   Ns   _compare_{0}(   t   getattrR$   t
   _operators(   R   t   op(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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!   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _coerce_version•   s    c         C` s   |  j  d S(   Ni    (   R'   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR    š   s    c         C` s   |  j  d S(   Ni   (   R'   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR!   ž   s    c         C` s   |  j  S(   N(   R(   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   ¢   s    c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   ¦   s    c         C` s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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   (    (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   X   s    								t   LegacySpecifierc           B` s“   e  Z e j 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(   sM  
        ^
        \s*
        (?P<operator>(==|!=|<=|>=|<|>))
        \s*
        (?P<version>
            [^\s]* # We just match everything, except for whitespace since this
                   # is a "legacy" specifier and the version string can be just
                   # about anything.
        )
        \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!   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR7   ü   s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   t   prospectiveR)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_equal  s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_not_equal  s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_less_than_equal  s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_greater_than_equal
  s    c         C` s   | |  j  | ƒ k  S(   N(   R7   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_less_than  s    c         C` s   | |  j  | ƒ k S(   N(   R7   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_greater_than  s    (   R	   R
   t   ret   compilet   VERBOSEt
   IGNORECASER"   R4   R7   RL   RM   RN   RO   RP   RQ   (    (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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(    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   wrapped  s    (   t	   functoolst   wraps(   RV   RW   (    (   RV   sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _require_version_compare  s    t	   Specifierc           B` sõ   e  Z e j 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(   s1  
        ^
        \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*
        $
        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(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   <lambda>œ  s   iÿÿÿÿs   .*s   >=s   ==(   t   joint   listt	   itertoolst	   takewhilet   _version_splitR6   (   R   RK   R)   t   prefix(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_compatibleŽ  s    

c         C` sŠ   | j  d ƒ rY t | d  ƒ } t t | ƒ ƒ } | t | ƒ  } t | | ƒ \ } } n' t | ƒ } | j s€ t | j ƒ } n  | | k S(   Ns   .*iþÿÿÿ(   t   endswithRh   R-   t   lent   _pad_versionR   t   localt   public(   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRL   ©  s    	c         C` s   |  j  | | ƒ S(   N(   RL   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRM   Ê  s    c         C` s   | t  | ƒ k S(   N(   R   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRN   Î  s    c         C` s   | t  | ƒ k S(   N(   R   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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_postreleaseRp   Rn   R   R;   (   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRQ   ï  s    c         C` s"   t  | ƒ j ƒ  t  | ƒ j ƒ  k S(   N(   R-   t   lower(   R   RK   R)   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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'   Rk   R   R9   R;   R:   (   R   R    R!   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR     s    c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   )  s    (   R	   R
   RR   RS   RT   RU   R"   R4   RZ   Rj   RL   RM   RN   RO   RP   RQ   Rs   RA   R   R   (    (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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*   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRh   1  s    c      	   C` s  g  g  } } | j  t t j d „  |  ƒ ƒ ƒ | j  t t j d „  | ƒ ƒ ƒ | j  |  t | ƒ ƒ | j  |  t | ƒ ƒ | 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(   Rb   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRc   @  s    c         S` s
   |  j  ƒ  S(   N(   Ry   (   Rb   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRc   A  s    i   t   0i    (   R<   Re   Rf   Rg   Rl   t   insertt   maxt   chain(   t   leftt   rightt
   left_splitt   right_split(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyRm   <  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   ,(
   Rt   R&   t   sett   addR[   R   RB   t	   frozensett   _specsR(   (   R   t
   specifiersR   t   st   parsedt	   specifier(    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR+   Y  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.   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR/   n  s    !c         C` s    d j  t d „  |  j Dƒ ƒ ƒ S(   NRƒ   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R-   (   t   .0R‰   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pys	   <genexpr>x  s    (   Rd   t   sortedR‡   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   w  s    c         C` s   t  |  j ƒ S(   N(   R0   R‡   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   z  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‹   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   __and__}  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   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   ž  s    c         C` s   t  |  j ƒ S(   N(   Rl   R‡   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   __len__¨  s    c         C` s   t  |  j ƒ S(   N(   t   iterR‡   (   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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‰   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pys	   <genexpr>½  s    (   R(   R   R‡   t   any(   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   ®  s
    	c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   ¿  s    c         C` s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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   (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pys	   <genexpr>ß  s   (
   R1   R   R   R   R   R   R9   R:   t   allR‡   (   R   R   R   (    (   R   R   sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_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@   (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR   ã  s*    	N(   R	   R
   R   R+   R/   R   R   R   R   R   R   R’   RA   R   R   R8   R   R   (    (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyR‚   W  s   						
	
			(   t
   __future__R    R   R   R   RX   Rf   RR   t   _compatR   R   R!   R   R   R   RŽ   R   t   ABCMetat   objectR   R   RB   RZ   R[   RS   Ru   Rh   Rm   R‚   (    (    (    sN   /tmp/pip-build-5Z5nTX/setuptools/pkg_resources/_vendor/packaging/specifiers.pyt   <module>   s"   "9ˆ4		ÿ 		