Ñò
Nf¾Uc           @` s<  d  d k  l Z l Z l Z d  d k Z d  d k Z d  d k Z d  d k Z d d k l	 Z	 l
 Z
 d d k l Z l Z l Z d e f d „  ƒ  YZ d e
 e i e ƒ f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ e i 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__(    (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR      s   t   BaseSpecifierc           B` sž   e  Z e i d  „  ƒ Z e i d „  ƒ Z e i d „  ƒ Z e i d „  ƒ Z e i d „  ƒ Z	 e	 i
 d „  ƒ Z	 e i d d „ ƒ Z e i 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(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   filterP   s    N(   R	   R
   t   abct   abstractmethodR   R   R   R   t   abstractpropertyR   t   settert   NoneR   R   (    (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR      s   t   _IndividualSpecifierc           B` s¼   e  Z h  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 i d „  ƒ Z d „  Z d d „ Z d d „ Z RS(   t    c         C` sl   |  i  i | ƒ } | p t d i | ƒ ƒ ‚ n | i d ƒ i ƒ  | i d ƒ i ƒ  f |  _ | |  _ d  S(   Ns   Invalid specifier: '{0}'t   operatort   version(   t   _regext   searchR   t   formatt   groupt   stript   _spect   _prereleases(   R   t   specR   t   match(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   __init__\   s    c         C` sH   |  i  d  j	 o d i |  i ƒ n d } d i |  i i t |  ƒ | ƒ S(   Ns   , prereleases={0!r}R   s   <{0}({1!r}{2})>(   R(   R   R$   R   t	   __class__R	   t   str(   R   t   pre(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   __repr__i   s    #		c         C` s   d i  |  i Œ  S(   Ns   {0}{1}(   R$   R'   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   v   s    c         C` s   t  |  i ƒ S(   N(   t   hashR'   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   y   s    c         C` sf   t  | t ƒ o. y |  i | ƒ } WqV t j
 o t SXn t  | |  i ƒ p t S|  i | i j S(   N(   t
   isinstanceR   R,   R   t   NotImplementedR'   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   |   s    
c         C` sf   t  | t ƒ o. y |  i | ƒ } WqV t j
 o t SXn t  | |  i ƒ p t S|  i | i j S(   N(   R1   R   R,   R   R2   R'   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ‡   s    
c         C` s   t  |  d i |  i | ƒ ƒ S(   Ns   _compare_{0}(   t   getattrR$   t
   _operators(   R   t   op(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _get_operator’   s    c         C` s*   t  | t t f ƒ p t | ƒ } n | S(   N(   R1   R   R   R   (   R   R!   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _coerce_version•   s    c         C` s   |  i  d S(   Ni    (   R'   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR    š   s    c         C` s   |  i  d S(   Ni   (   R'   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR!   ž   s    c         C` s   |  i  S(   N(   R(   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ¢   s    c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ¦   s    c         C` s   |  i  | ƒ S(   N(   R   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   __contains__ª   s    c         C` s\   | d  j o |  i } n |  i | ƒ } | i o | o t S|  i |  i ƒ | |  i ƒ S(   N(   R   R   R7   t   is_prereleaset   FalseR6   R    R!   (   R   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ­   s    c         c` sÉ   t  } g  } h | d  j	 o | n t d 6} xl | D]d } |  i | ƒ } |  i | |  o< | i o# | p |  i o | i | ƒ q˜ t } | Vq4 q4 W| o! | o 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(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   X   s    								t   LegacySpecifierc           B` s“   e  Z e i d  e i e i Bƒ Z h 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 ƒ p t t | ƒ ƒ } n | S(   N(   R1   R   R-   (   R   R!   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR7   ü   s    c         C` s   | |  i  | ƒ j S(   N(   R7   (   R   t   prospectiveR)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_equal  s    c         C` s   | |  i  | ƒ j S(   N(   R7   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_not_equal  s    c         C` s   | |  i  | ƒ j S(   N(   R7   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_less_than_equal  s    c         C` s   | |  i  | ƒ j S(   N(   R7   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_greater_than_equal
  s    c         C` s   | |  i  | ƒ j  S(   N(   R7   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_less_than  s    c         C` s   | |  i  | ƒ j S(   N(   R7   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRB   à   s"   
						c         ` s"   t  i ˆ  ƒ ‡  f d †  ƒ } | S(   Nc         ` s%   t  | t ƒ p t Sˆ  |  | | ƒ S(   N(   R1   R   R:   (   R   RK   R)   (   t   fn(    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   wrapped  s    (   t	   functoolst   wraps(   RV   RW   (    (   RV   s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _require_version_compare  s    t	   Specifierc           B` sõ   e  Z e i d  e i e i Bƒ Z h 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 i 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` sg   d i  t t i d „  t | ƒ ƒ ƒ d  ƒ } | d 7} |  i d ƒ | | ƒ o |  i d ƒ | | ƒ S(   Nt   .c         S` s   |  i  d  ƒ o |  i  d ƒ S(   t   postt   dev(   t
   startswith(   t   x(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   <lambda>œ  s   iÿÿÿÿs   .*s   >=s   ==(   t   joint   listt	   itertoolst	   takewhilet   _version_splitR6   (   R   RK   R)   t   prefix(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_compatibleŽ  s    

c         C` sŽ   | i  d ƒ oK t | d  ƒ } t t | ƒ ƒ } | t | ƒ  } t | | ƒ \ } } n* t | ƒ } | i p t | i ƒ } n | | j S(   Ns   .*iþÿÿÿ(   t   endswithRh   R-   t   lent   _pad_versionR   t   localt   public(   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRL   ©  s    
c         C` s   |  i  | | ƒ S(   N(   RL   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRM   Ê  s    c         C` s   | t  | ƒ j S(   N(   R   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRN   Î  s    c         C` s   | t  | ƒ j S(   N(   R   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRO   Ò  s    c         C` s_   t  | ƒ } | | j  p t S| i o2 | i o( t  | i ƒ t  | i ƒ j o t Sn t S(   N(   R   R:   R9   t   base_versionR;   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRP   Ö  s    	c         C` s—   t  | ƒ } | | j p t S| i o2 | i o( t  | i ƒ t  | i ƒ j o t Sn | i d  j	 o( t  | i ƒ t  | i ƒ j o t Sn t S(   N(   R   R:   t   is_postreleaseRp   Rn   R   R;   (   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRQ   ï  s    		c         C` s"   t  | ƒ i ƒ  t  | ƒ i ƒ  j S(   N(   R-   t   lower(   R   RK   R)   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   _compare_arbitrary  s    c         C` s|   |  i  d  j	 o |  i  S|  i \ } } | d j oD | d j o | i d ƒ o | d  } n t | ƒ i o t Sn 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!   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR     s    	c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR[     s,   `
!	s   ^([0-9]+)((?:a|b|c|rc)[0-9]+)$c         C` s^   g  } xQ |  i  d ƒ D]@ } t i | ƒ } | o | i | i ƒ  ƒ q | i | ƒ q W| S(   NR^   (   t   splitt   _prefix_regexR#   t   extendt   groupsR<   (   R!   t   resultR   R*   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRh   1  s     c         C` s  g  g  } } | i  t t i d „  |  ƒ ƒ ƒ | i  t t i d „  | ƒ ƒ ƒ | i  |  t | ƒ ƒ | i  |  t | ƒ ƒ | i d d g t d t | d ƒ t | d ƒ ƒ ƒ | i d d g t d t | d ƒ t | d ƒ ƒ ƒ t t i | Œ  ƒ t t i | Œ  ƒ f S(   Nc         S` s
   |  i  ƒ  S(    (   t   isdigit(   Rb   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyRc   @  s    c         S` s
   |  i  ƒ  S(    (   Ry   (   Rb   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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 i d „  ƒ Z d „  Z d d „ Z d d „ Z RS(   R   c      	   C` s·   g  } | i  d ƒ D]$ } | i ƒ  o | | i ƒ  q q ~ } t ƒ  } xN | D]F } y | i t | ƒ ƒ WqQ t j
 o | i t | ƒ ƒ qQ XqQ Wt | ƒ |  _ | |  _	 d  S(   Nt   ,(
   Rt   R&   t   sett   addR[   R   RB   t	   frozensett   _specsR(   (   R   t
   specifiersR   t   _[1]t   st   parsedt	   specifier(    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR+   Y  s    A	 c         C` s?   |  i  d  j	 o d i |  i ƒ n d } d i t |  ƒ | ƒ S(   Ns   , prereleases={0!r}R   s   <SpecifierSet({0!r}{1})>(   R(   R   R$   R   R-   (   R   R.   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR/   n  s    #c         C` s    d i  t d „  |  i Dƒ ƒ ƒ S(   NRƒ   c         s` s   x |  ] } t  | ƒ Vq Wd  S(   N(   R-   (   t   .0RŠ   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pys	   <genexpr>x  s   	 (   Rd   t   sortedR‡   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   w  s    c         C` s   t  |  i ƒ S(   N(   R0   R‡   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   z  s    c         C` sê   t  | t ƒ o t | ƒ } n t  | t ƒ p t St ƒ  } t |  i | i Bƒ | _ |  i d  j o  | i d  j	 o | i | _ n` |  i d  j	 o  | i d  j o |  i | _ n0 |  i | i j o |  i | _ 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Œ   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   __and__}  s    	  	c         C` sk   t  | t ƒ o t | ƒ } n< t  | t ƒ o t t | ƒ ƒ } n t  | t ƒ p t S|  i | i j S(   N(   R1   R   R‚   R   R-   R2   R‡   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ”  s    c         C` sk   t  | t ƒ o t | ƒ } n< t  | t ƒ o t t | ƒ ƒ } n t  | t ƒ p t S|  i | i j S(   N(   R1   R   R‚   R   R-   R2   R‡   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ž  s    c         C` s   t  |  i ƒ S(   N(   Rl   R‡   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   __len__¨  s    c         C` s   t  |  i ƒ S(   N(   t   iterR‡   (   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   __iter__«  s    c         C` s>   |  i  d  j	 o |  i  S|  i p d  St d „  |  i Dƒ ƒ S(   Nc         s` s   x |  ] } | i  Vq Wd  S(   N(   R   (   R   RŠ   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pys	   <genexpr>½  s   	 (   R(   R   R‡   t   any(   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ®  s
    
c         C` s   | |  _  d  S(   N(   R(   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   ¿  s    c         C` s   |  i  | ƒ S(   N(   R   (   R   R   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR8   Ã  s    c         ` sw   t  ˆ t t f ƒ p t ˆ ƒ ‰ n ˆ  d  j o |  i ‰  n ˆ  o ˆ i o t St ‡ ‡  f d †  |  i	 Dƒ ƒ S(   Nc         3` s(   x! |  ] } | i  ˆ  d  ˆ ƒVq Wd S(   R   N(   R   (   R   RŠ   (   R   R   (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pys	   <genexpr>ß  s   	(
   R1   R   R   R   R   R   R9   R:   t   allR‡   (   R   R   R   (    (   R   R   s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyR   Æ  s    c         C` s  | d  j o |  i } n |  i o4 x, |  i D]! } | i | d t | ƒ ƒ} q. W| Sg  } g  } xŒ | D]„ } t | t t f ƒ p t | ƒ } n | } t | t ƒ o qk n | i	 o$ | o | p | i
 | ƒ qï qk | i
 | ƒ qk W| o | o | d  j o | S| Sd  S(   NR   (   R   R   R‡   R   t   boolR1   R   R   R   R9   R<   (   R   R   R   R)   t   filteredR>   R   R@   (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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   (    (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/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‚   (    (    (    s]   /Builds/sources/setuptools/18.1/setuptools-18.1/pkg_resources/_vendor/packaging/specifiers.pyt   <module>   s"   "9ˆ4		ÿ 		