ó
Ð²Ebc           @   sÑ   d  d l  m Z d  d l m Z d d l m Z m Z e ru d  d l m Z d  d l	 m
 Z
 d d l m Z m Z n  d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   canonicalize_name(   t   MYPY_CHECK_RUNNINGi   (   t   Requirementt   format_name(   t   SpecifierSet(   t   InstallRequirement(   t	   Candidatet   CandidateLookupt   ExplicitRequirementc           B   s\   e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z	 d „  Z
 RS(   c         C   s   | |  _  d  S(   N(   t	   candidate(   t   selfR	   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyt   __init__   s    c         C   s   t  |  j ƒ S(   N(   t   strR	   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyt   __str__   s    c         C   s   d j  d |  j j d |  j ƒ S(   Ns   {class_name}({candidate!r})t
   class_nameR	   (   t   formatt	   __class__t   __name__R	   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyt   __repr__   s    	c         C   s
   |  j  j S(   N(   R	   t   project_name(   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR      s    c         C   s
   |  j  j S(   N(   R	   t   name(   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   %   s    c         C   s   |  j  j ƒ  S(   N(   R	   t   format_for_error(   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   +   s    c         C   s   |  j  d  f S(   N(   R	   t   None(   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyt   get_candidate_lookup/   s    c         C   s   | |  j  k S(   N(   R	   (   R
   R	   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyt   is_satisfied_by3   s    (   R   t
   __module__R   R   R   t   propertyR   R   R   R   R   (    (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR      s   					t   SpecifierRequirementc           B   s\   e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z	 d „  Z
 RS(   c         C   s:   | j  d  k s t d ƒ ‚ | |  _ t | j ƒ |  _ d  S(   Ns   This is a link, not a specifier(   t   linkR   t   AssertionErrort   _ireqt	   frozensett   extrast   _extras(   R
   t   ireq(    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   9   s    	c         C   s   t  |  j j ƒ S(   N(   R   R   t   req(   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   ?   s    c         C   s(   d j  d |  j j d t |  j j ƒ ƒ S(   Ns   {class_name}({requirement!r})R   t   requirement(   R   R   R   R   R   R#   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   C   s    	c         C   s   t  |  j j j ƒ S(   N(   R    R   R#   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   J   s    c         C   s   t  |  j |  j ƒ S(   N(   R   R   R!   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   O   s    c         C   s{   g  t  |  ƒ j d ƒ D] } | j ƒ  ^ q } t | ƒ d k rD d St | ƒ d k r^ | d Sd j | d  ƒ d | d S(   Nt   ,i    t    i   s   , iÿÿÿÿs    and (   R   t   splitt   stript   lent   join(   R
   t   st   parts(    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   T   s    .c         C   s   d  |  j f S(   N(   R   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   c   s    c         C   sU   | j  |  j  k s0 t d j | j  |  j  ƒ ƒ ‚ |  j j j } | j | j d t ƒS(   Ns?   Internal issue: Candidate is not for this requirement  {} vs {}t   prereleases(	   R   R   R   R   R#   t	   specifiert   containst   versiont   True(   R
   R	   t   spec(    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   g   s
    (   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   8   s   					t   RequiresPythonRequirementc           B   sb   e  Z d  Z d „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z	 d „  Z
 d „  Z RS(	   s9   A requirement representing Requires-Python metadata.
    c         C   s   | |  _  | |  _ d  S(   N(   R.   t
   _candidate(   R
   R.   t   match(    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   v   s    	c         C   s   d j  |  j ƒ S(   Ns	   Python {}(   R   R.   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   {   s    c         C   s%   d j  d |  j j d t |  j ƒ ƒ S(   Ns   {class_name}({specifier!r})R   R.   (   R   R   R   R   R.   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR      s    	c         C   s
   |  j  j S(   N(   R4   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   †   s    c         C   s
   |  j  j S(   N(   R4   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   ‹   s    c         C   s
   t  |  ƒ S(   N(   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR      s    c         C   s/   |  j  j |  j j d t ƒr+ |  j d  f Sd S(   NR-   (   NN(   R.   R/   R4   R0   R1   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   ”   s    c         C   s:   | j  |  j j  k s! t d ƒ ‚ |  j j | j d t ƒS(   Ns   Not Python candidateR-   (   R   R4   R   R.   R/   R0   R1   (   R
   R	   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   š   s    !(   R   R   t   __doc__R   R   R   R   R   R   R   R   R   (    (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR3   s   s   					t   UnsatisfiableRequirementc           B   sb   e  Z d  Z d „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z	 d „  Z
 d „  Z RS(	   s,   A requirement that cannot be satisfied.
    c         C   s   | |  _  d  S(   N(   t   _name(   R
   R   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   ¦   s    c         C   s   d j  |  j ƒ S(   Ns   {} (unavailable)(   R   R8   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   ª   s    c         C   s%   d j  d |  j j d t |  j ƒ ƒ S(   Ns   {class_name}({name!r})R   R   (   R   R   R   R   R8   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   ®   s    	c         C   s   |  j  S(   N(   R8   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   µ   s    c         C   s   |  j  S(   N(   R8   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   º   s    c         C   s
   t  |  ƒ S(   N(   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   ¿   s    c         C   s   d S(   N(   NN(   R   (   R
   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   Ã   s    c         C   s   t  S(   N(   t   False(   R
   R	   (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR   Ç   s    (   R   R   R6   R   R   R   R   R   R   R   R   R   (    (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyR7   £   s   					N(   t   pip._vendor.packaging.utilsR    t   pip._internal.utils.typingR   t   baseR   R   t    pip._vendor.packaging.specifiersR   t   pip._internal.req.req_installR   R   R   R   R   R3   R7   (    (    (    sM   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/requirements.pyt   <module>   s   );0