ó
Ð²Ebc           @` sY  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m Z m	 Z	 m
 Z
 d  d l m Z m Z m Z m Z m Z d  d l m Z d  d l m Z d d l m Z m Z d d	 l m Z m Z m Z d
 e f d „  ƒ  YZ e e j e j ƒ Z  e d ƒ j! ƒ  Z" e d ƒ j! ƒ  Z# e d ƒ j! ƒ  Z$ e d ƒ j! ƒ  Z% e d ƒ j! ƒ  Z& e d ƒ j! ƒ  Z' e d ƒ j! ƒ  Z( e d ƒ Z) e  e e) ƒ e  BZ* e e  e e* ƒ ƒ Z+ e+ d ƒ Z, e+ Z- e d ƒ d ƒ Z. e( e. Z/ e- e e& e- ƒ Z0 e" e e0 ƒ e# d ƒ Z1 e e j2 e j3 e j4 Bƒ Z5 e e j2 e j3 e j4 Bƒ Z6 e5 e6 AZ7 e e7 e e& e7 ƒ d d d e8 ƒd ƒ Z9 e e$ e9 e% e9 Bƒ Z: e: j; d „  ƒ e	 e: ƒ d ƒ Z< e< j; d „  ƒ e	 e ƒ  ƒ d ƒ Z e j; d „  ƒ e' Z= e= e Z> e< e e> ƒ Z? e/ e e> ƒ Z@ e, e e1 ƒ e@ e? BZA e eA e ZB d  eC f d! „  ƒ  YZD d S("   i    (   t   absolute_importt   divisiont   print_functionN(   t   stringStartt	   stringEndt   originalTextFort   ParseException(   t
   ZeroOrMoret   Wordt   Optionalt   Regext   Combine(   t   Literal(   t   parsei   (   t   MARKER_EXPRt   Marker(   t   LegacySpecifiert	   Specifiert   SpecifierSett   InvalidRequirementc           B` s   e  Z d  Z RS(   sJ   
    An invalid requirement was found, users should refer to PEP 508.
    (   t   __name__t
   __module__t   __doc__(    (    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyR      s   t   [t   ]t   (t   )t   ,t   ;t   @s   -_.t   names   [^ ]+t   urlt   extrast
   joinStringt   adjacentt	   _raw_specc         C` s   | j  p d S(   Nt    (   R#   (   t   st   lt   t(    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyt   <lambda>6   R$   t	   specifierc         C` s   | d S(   Ni   (    (   R%   R&   R'   (    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyR(   9   R$   t   markerc         C` s   t  |  | j | j !ƒ S(   N(   R   t   _original_startt   _original_end(   R%   R&   R'   (    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyR(   =   R$   t   Requirementc           B` s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sÁ   Parse a requirement.

    Parse a given requirement string into its parts, such as name, specifier,
    URL, and extras. Raises InvalidRequirement on a badly-formed requirement
    string.
    c         C` s  y t  j | ƒ } Wn9 t k
 rN } t d j | | j | j d !ƒ ƒ ‚ n X| j |  _ | j r» t j | j ƒ } | j	 o… | j
 s | j	 r¬ | j
 r¬ t d ƒ ‚ n  | j |  _ n	 d  |  _ t | j rß | j j ƒ  n g  ƒ |  _ t | j ƒ |  _ | j r| j n d  |  _ d  S(   Ns+   Invalid requirement, parse error at "{0!r}"i   s   Invalid URL given(   t   REQUIREMENTt   parseStringR   R   t   formatt   locR   R   t   urlparset   schemet   netloct   Nonet   setR    t   asListR   R)   R*   (   t   selft   requirement_stringt   reqt   et
   parsed_url(    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyt   __init__X   s"    !		'c         C` s¹   |  j  g } |  j r@ | j d j d j t |  j ƒ ƒ ƒ ƒ n  |  j rb | j t |  j ƒ ƒ n  |  j r‡ | j d j |  j ƒ ƒ n  |  j	 r¬ | j d j |  j	 ƒ ƒ n  d j | ƒ S(   Ns   [{0}]R   s   @ {0}s   ; {0}R$   (
   R   R    t   appendR0   t   joint   sortedR)   t   strR   R*   (   R8   t   parts(    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyt   __str__m   s    	+			c         C` s   d j  t |  ƒ ƒ S(   Ns   <Requirement({0!r})>(   R0   RA   (   R8   (    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyt   __repr__~   s    (   R   R   R   R=   RC   RD   (    (    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyR-   K   s   		(E   t
   __future__R    R   R   t   stringt   ret   pkg_resources.extern.pyparsingR   R   R   R   R   R   R	   R
   R   R   t   Lt%   pkg_resources.extern.six.moves.urllibR   R2   t   markersR   R   t
   specifiersR   R   R   t
   ValueErrorR   t   ascii_letterst   digitst   ALPHANUMt   suppresst   LBRACKETt   RBRACKETt   LPARENt   RPARENt   COMMAt	   SEMICOLONt   ATt   PUNCTUATIONt   IDENTIFIER_ENDt
   IDENTIFIERt   NAMEt   EXTRAt   URIt   URLt   EXTRAS_LISTt   EXTRASt
   _regex_strt   VERBOSEt
   IGNORECASEt   VERSION_PEP440t   VERSION_LEGACYt   VERSION_ONEt   Falset   VERSION_MANYt   _VERSION_SPECt   setParseActiont   VERSION_SPECt   MARKER_SEPERATORt   MARKERt   VERSION_AND_MARKERt   URL_AND_MARKERt   NAMED_REQUIREMENTR.   t   objectR-   (    (    (    sS   /tmp/pip-build-UPPWic/pkg-resources/pkg_resources/_vendor/packaging/requirements.pyt   <module>   sZ   "(



