ó
Ð²Ebc           @` 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 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 e j d  d
 k rd  d l m Z n d  d l Z e r3d  d l  m! Z! m Z" m# Z# n  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) ƒ  Z0 e d ƒ Z1 e( e e1 ƒ e( BZ2 e e( e e2 ƒ ƒ Z3 e3 d ƒ Z4 e3 Z5 e d ƒ d ƒ Z6 e0 e6 Z7 e5 e e. e5 ƒ Z8 e* e e8 ƒ e+ d ƒ Z9 e e j: e j; e j< Bƒ Z= e e j: e j; e j< Bƒ Z> e= e> AZ? e e? e e. e? ƒ d d d e@ ƒd ƒ ZA e e, eA e- eA Bƒ ZB eB jC d „  ƒ e
 eB ƒ d ƒ ZD eD jC d  „  ƒ e
 e ƒ  ƒ d! ƒ Z e jC d" „  ƒ e/ ZE eE e ZF eD e eF ƒ ZG e7 e eF ƒ ZH e4 e e9 ƒ eH eG BZI e eI e	 ZJ eJ jK d# ƒ d$ eL f d% „  ƒ  YZM d S(&   i    (   t   absolute_importt   divisiont   print_functionN(   t   stringStartt	   stringEndt   originalTextFort   ParseException(   t
   ZeroOrMoret   Wordt   Optionalt   Regext   Combine(   t   Literali   (   t   TYPE_CHECKING(   t   MARKER_EXPRt   Marker(   t   LegacySpecifiert	   Specifiert   SpecifierSeti   (   t   parse(   t   ListR	   t   Sett   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__(    (    (    s?   /tmp/pip-build-UPPWic/pip/pip/_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(    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyt   <lambda>A   R'   t	   specifierc         C` s   | d S(   Ni   (    (   R(   R)   R*   (    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyR+   D   R'   t   markerc         C` s   t  |  | j | j !ƒ S(   N(   R   t   _original_startt   _original_end(   R(   R)   R*   (    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyR+   H   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(    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyt   __init__e   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   appendR4   t   joint   sortedR,   t   strR"   R-   (   R>   t   parts(    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyt   __str__   s    	+				c         C` s   d j  t |  ƒ ƒ S(   Ns   <Requirement({0!r})>(   R4   RH   (   R>   (    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyt   __repr__•   s    (   R   R   R   RC   RJ   RK   (    (    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyR0   X   s   		(N   t
   __future__R    R   R   t   stringt   ret   syst   pip._vendor.pyparsingR   R   R   R   R   R   R	   R
   R   R   t   Lt   _typingR   t   markersR   R   t
   specifiersR   R   R   t   version_infot   urllibR   R7   t   typingR   t	   TOptionalR   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_REQUIREMENTR2   R3   t   objectR0   (    (    (    s?   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/requirements.pyt   <module>   sj   "(

 	

