ó
Ð²Ebc           @   s  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m	 Z	 e	 r³ d  d l
 m Z m Z m Z m Z d  d l m Z d  d l m Z e e d	 e e f Z n  d
 „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   SpecifierSet(   t   canonicalize_name(   t   InstallRequirement(   t   Hashes(   t   MYPY_CHECK_RUNNING(   t	   FrozenSett   Iterablet   Optionalt   Tuple(   t   _BaseVersion(   t   Linkt	   Candidatec         C   s9   | s
 |  St  d „  | Dƒ ƒ } d j |  d j | ƒ ƒ S(   Nc         s   s   |  ] } t  | ƒ Vq d  S(   N(   R   (   t   .0t   e(    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pys	   <genexpr>   s    s   {}[{}]t   ,(   t   sortedt   formatt   join(   t   projectt   extrast   canonical_extras(    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   format_name   s    t
   Constraintc           B   sS   e  Z d  „  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s   | |  _  | |  _ d  S(   N(   t	   specifiert   hashes(   t   selfR   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   __init__   s    	c         C   s   t  t ƒ  t ƒ  ƒ S(   N(   R   R    R   (   t   cls(    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   empty#   s    c         C   s   t  | j | j d t ƒ ƒ S(   Nt   trust_internet(   R   R   R   t   False(   R   t   ireq(    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt	   from_ireq(   s    c         C   s   t  |  j ƒ p t  |  j ƒ S(   N(   t   boolR   R   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   __nonzero__-   s    c         C   s
   |  j  ƒ  S(   N(   R"   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   __bool__1   s    c         C   sI   t  | t ƒ s t S|  j | j @} |  j | j d t ƒ @} t | | ƒ S(   NR   (   t
   isinstanceR   t   NotImplementedR   R   R   R   (   R   t   otherR   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   __and__5   s
    c         C   s   |  j  j | j d t ƒS(   Nt   prereleases(   R   t   containst   versiont   True(   R   t	   candidate(    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   is_satisfied_by=   s    (
   t   __name__t
   __module__R   t   classmethodR   R    R"   R#   R'   R-   (    (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR      s   				t   Requirementc           B   sA   e  Z e d  „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z RS(   c         C   s   t  d ƒ ‚ d S(   sò   The "project name" of a requirement.

        This is different from ``name`` if this requirement contains extras,
        in which case ``name`` would contain the ``[...]`` part, while this
        refers to the name of the project.
        s   Subclass should overrideN(   t   NotImplementedError(   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   project_nameF   s    	c         C   s   t  d ƒ ‚ d S(   sÚ   The name identifying this requirement in the resolver.

        This is different from ``project_name`` if this requirement contains
        extras, where ``project_name`` would not contain the ``[...]`` part.
        s   Subclass should overrideN(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   nameQ   s    c         C   s   t  S(   N(   R   (   R   R,   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR-   [   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Subclass should override(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   get_candidate_lookup_   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Subclass should override(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   format_for_errorc   s    (   R.   R/   t   propertyR3   R4   R-   R5   R6   (    (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR1   E   s
   
		c           B   s}   e  Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z	 d „  Z
 d „  Z RS(	   c         C   s   t  d ƒ ‚ d S(   sð   The "project name" of the candidate.

        This is different from ``name`` if this candidate contains extras,
        in which case ``name`` would contain the ``[...]`` part, while this
        refers to the name of the project.
        s   Override in subclassN(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR3   i   s    	c         C   s   t  d ƒ ‚ d S(   sÖ   The name identifying this candidate in the resolver.

        This is different from ``project_name`` if this candidate contains
        extras, where ``project_name`` would not contain the ``[...]`` part.
        s   Override in subclassN(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR4   t   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Override in subclass(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR*   ~   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Override in subclass(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   is_installedƒ   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Override in subclass(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   is_editableˆ   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Override in subclass(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   source_link   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Override in subclass(   R2   (   R   t   with_requires(    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   iter_dependencies’   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Override in subclass(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   get_install_requirement–   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Subclass should override(   R2   (   R   (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR6   š   s    (   R.   R/   R7   R3   R4   R*   R8   R9   R:   R<   R=   R6   (    (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyR   h   s   
		N(   t    pip._vendor.packaging.specifiersR    t   pip._vendor.packaging.utilsR   t   pip._internal.req.req_installR   t   pip._internal.utils.hashesR   t   pip._internal.utils.typingR   t   typingR   R   R   R   t   pip._vendor.packaging.versionR	   t   pip._internal.models.linkR
   t   CandidateLookupR   t   objectR   R1   R   (    (    (    sE   /tmp/pip-build-UPPWic/pip/pip/_internal/resolution/resolvelib/base.pyt   <module>   s   "	(#