
0c@_&	                 @   s   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 d  d l m Z e e d e e f Z d d	   Z Gd
 d   d e  Z Gd d   d e  Z d S)    )canonicalize_name)MYPY_CHECK_RUNNING)	FrozenSetIterableOptionalTuple)_BaseVersion)Link)InstallRequirement	Candidatec             C   s<   | s
 |  St  d d   | D  } d j |  d j |   S)Nc             s   s   |  ] } t  |  Vq d  S)N)r   ).0e r   G/tmp/pip-build-jynh7p1z/pip/pip/_internal/resolution/resolvelib/base.py	<genexpr>   s    zformat_name.<locals>.<genexpr>z{}[{}],)sortedformatjoin)projectextrasZcanonical_extrasr   r   r   format_name   s    r   c               @   sF   e  Z d  Z e d d    Z d d   Z d d   Z d d   Z d	 S)
Requirementc             C   s   t  d   d  S)NzSubclass should override)NotImplementedError)selfr   r   r   name   s    zRequirement.namec             C   s   d S)NFr   )r   	candidater   r   r   is_satisfied_by!   s    zRequirement.is_satisfied_byc             C   s   t  d   d  S)NzSubclass should override)r   )r   r   r   r   get_candidate_lookup%   s    z Requirement.get_candidate_lookupc             C   s   t  d   d  S)NzSubclass should override)r   )r   r   r   r   format_for_error)   s    zRequirement.format_for_errorN)__name__
__module____qualname__propertyr   r   r   r   r   r   r   r   r      s   r   c               @   s   e  Z d  Z e d d    Z e d d    Z e d d    Z e d d    Z e d	 d
    Z d d   Z	 d d   Z
 d d   Z d S)r   c             C   s   t  d   d  S)NzOverride in subclass)r   )r   r   r   r   r   /   s    zCandidate.namec             C   s   t  d   d  S)NzOverride in subclass)r   )r   r   r   r   version4   s    zCandidate.versionc             C   s   t  d   d  S)NzOverride in subclass)r   )r   r   r   r   is_installed9   s    zCandidate.is_installedc             C   s   t  d   d  S)NzOverride in subclass)r   )r   r   r   r   is_editable>   s    zCandidate.is_editablec             C   s   t  d   d  S)NzOverride in subclass)r   )r   r   r   r   source_linkC   s    zCandidate.source_linkc             C   s   t  d   d  S)NzOverride in subclass)r   )r   Zwith_requiresr   r   r   iter_dependenciesH   s    zCandidate.iter_dependenciesc             C   s   t  d   d  S)NzOverride in subclass)r   )r   r   r   r   get_install_requirementL   s    z!Candidate.get_install_requirementc             C   s   t  d   d  S)NzSubclass should override)r   )r   r   r   r   r   P   s    zCandidate.format_for_errorN)r    r!   r"   r#   r   r$   r%   r&   r'   r(   r)   r   r   r   r   r   r   .   s   N)pip._vendor.packaging.utilsr   Zpip._internal.utils.typingr   Ztypingr   r   r   r   Zpip._vendor.packaging.versionr   Zpip._internal.models.linkr	   Zpip._internal.req.req_installr
   ZCandidateLookupr   objectr   r   r   r   r   r   <module>   s   "