ó
Ð²Ebc           @` sf  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 eB jC d  ƒ d! eD f d" „  ƒ  YZE 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__(    (    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_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(    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyt   <lambda>7   R$   t	   specifierc         C` s   | d S(   Ni   (    (   R%   R&   R'   (    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyR(   :   R$   t   markerc         C` s   t  |  | j | j !ƒ S(   N(   R   t   _original_startt   _original_end(   R%   R&   R'   (    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyR(   >   R$   s   x[]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` sg  y t  j | ƒ } Wn? t k
 rT } t d j | | j | j d !| j ƒ ƒ ‚ n X| j |  _ | j rt	 j	 | j ƒ } | j
 d k rµ t	 j | ƒ | j k r÷ t d ƒ ‚ q÷ nB | j
 oÄ | j sÜ | j
 r÷ | j r÷ t d j | j ƒ ƒ ‚ n  | j |  _ n	 d  |  _ t | j r*| j j ƒ  n g  ƒ |  _ t | j ƒ |  _ | j rZ| j n d  |  _ d  S(   Ns   Parse error at "{0!r}": {1}i   t   files   Invalid URL givens   Invalid URL: {0}(   t   REQUIREMENTt   parseStringR   R   t   formatt   loct   msgR   R   t   urlparset   schemet
   urlunparset   netloct   Nonet   setR    t   asListR   R)   R*   (   t   selft   requirement_stringt   reqt   et
   parsed_url(    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyt   __init__[   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 ƒ ƒ |  j	 r  | j d ƒ q  n  |  j	 rÅ | j d j |  j	 ƒ ƒ n  d j | ƒ S(   Ns   [{0}]R   s   @ {0}t    s   ; {0}R$   (
   R   R    t   appendR1   t   joint   sortedR)   t   strR   R*   (   R;   t   parts(    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyt   __str__v   s    	+				c         C` s   d j  t |  ƒ ƒ S(   Ns   <Requirement({0!r})>(   R1   RE   (   R;   (    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyt   __repr__‰   s    (   R   R   R   R@   RG   RH   (    (    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyR-   N   s   		(F   t
   __future__R    R   R   t   stringt   ret   setuptools.extern.pyparsingR   R   R   R   R   R   R	   R
   R   R   t   Lt"   setuptools.extern.six.moves.urllibR   R4   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_SEPARATORt   MARKERt   VERSION_AND_MARKERt   URL_AND_MARKERt   NAMED_REQUIREMENTR/   R0   t   objectR-   (    (    (    sM   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/requirements.pyt   <module>   s^   "(

 	

