a
    e0hQ                     @   s   d dl mZ d dlmZ ddlmZmZ erTd dlmZ d dl	m
Z
 ddlmZmZ G dd	 d	eZG d
d deZG dd deZG dd deZdS )    )canonicalize_name)MYPY_CHECK_RUNNING   )Requirementformat_name)SpecifierSet)InstallRequirement)	CandidateCandidateLookupc                   @   sT   e Zd Zdd Zdd Zdd Zedd Zed	d
 Zdd Z	dd Z
dd ZdS )ExplicitRequirementc                 C   s
   || _ d S N	candidateselfr    r   ^/var/www/auris/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py__init__   s    zExplicitRequirement.__init__c                 C   s
   t | jS r   )strr   r   r   r   r   __str__   s    zExplicitRequirement.__str__c                 C   s   dj | jj| jdS )Nz{class_name}({candidate!r}))
class_namer   )format	__class____name__r   r   r   r   r   __repr__   s    zExplicitRequirement.__repr__c                 C   s   | j jS r   )r   project_namer   r   r   r   r      s    z ExplicitRequirement.project_namec                 C   s   | j jS r   )r   namer   r   r   r   r   %   s    zExplicitRequirement.namec                 C   s
   | j  S r   )r   format_for_errorr   r   r   r   r   +   s    z$ExplicitRequirement.format_for_errorc                 C   s
   | j d fS r   r   r   r   r   r   get_candidate_lookup/   s    z(ExplicitRequirement.get_candidate_lookupc                 C   s
   || j kS r   r   r   r   r   r   is_satisfied_by3   s    z#ExplicitRequirement.is_satisfied_byNr   
__module____qualname__r   r   r   propertyr   r   r   r   r    r   r   r   r   r      s   

r   c                   @   sT   e Zd Zdd Zdd Zdd Zedd Zed	d
 Zdd Z	dd Z
dd ZdS )SpecifierRequirementc                 C   s(   |j d u sJ d|| _t|j| _d S )NzThis is a link, not a specifier)link_ireq	frozensetextras_extras)r   ireqr   r   r   r   9   s    zSpecifierRequirement.__init__c                 C   s   t | jjS r   )r   r'   reqr   r   r   r   r   ?   s    zSpecifierRequirement.__str__c                 C   s   dj | jjt| jjdS )Nz{class_name}({requirement!r}))r   requirement)r   r   r   r   r'   r,   r   r   r   r   r   C   s    
zSpecifierRequirement.__repr__c                 C   s   t | jjjS r   )r   r'   r,   r   r   r   r   r   r   J   s    z!SpecifierRequirement.project_namec                 C   s   t | j| jS r   )r   r   r*   r   r   r   r   r   O   s    zSpecifierRequirement.namec                 C   sZ   dd t | dD }t|dkr(dS t|dkr<|d S d|d d d	 |d  S )
Nc                 S   s   g | ]}|  qS r   )strip).0sr   r   r   
<listcomp>[       z9SpecifierRequirement.format_for_error.<locals>.<listcomp>,r    r   z, z and )r   splitlenjoin)r   partsr   r   r   r   T   s    z%SpecifierRequirement.format_for_errorc                 C   s
   d | j fS r   )r'   r   r   r   r   r   c   s    z)SpecifierRequirement.get_candidate_lookupc                 C   s:   |j | j ks J d|j | j | jjj}|j|jddS )Nz?Internal issue: Candidate is not for this requirement  {} vs {}Tprereleases)r   r   r'   r,   	specifiercontainsversion)r   r   specr   r   r   r    g   s    
z$SpecifierRequirement.is_satisfied_byNr!   r   r   r   r   r%   8   s   

r%   c                   @   sX   e Zd ZdZdd Zdd Zdd Zedd	 Zed
d Z	dd Z
dd Zdd ZdS )RequiresPythonRequirementz9A requirement representing Requires-Python metadata.
    c                 C   s   || _ || _d S r   )r<   
_candidate)r   r<   matchr   r   r   r   v   s    z"RequiresPythonRequirement.__init__c                 C   s   d | jS )Nz	Python {})r   r<   r   r   r   r   r   {   s    z!RequiresPythonRequirement.__str__c                 C   s   dj | jjt| jdS )Nz{class_name}({specifier!r}))r   r<   )r   r   r   r   r<   r   r   r   r   r      s    z"RequiresPythonRequirement.__repr__c                 C   s   | j jS r   )rA   r   r   r   r   r   r      s    z&RequiresPythonRequirement.project_namec                 C   s   | j jS r   )rA   r   r   r   r   r   r      s    zRequiresPythonRequirement.namec                 C   s   t | S r   r   r   r   r   r   r      s    z*RequiresPythonRequirement.format_for_errorc                 C   s"   | j j| jjddr| jd fS dS )NTr:   NN)r<   r=   rA   r>   r   r   r   r   r      s    
z.RequiresPythonRequirement.get_candidate_lookupc                 C   s(   |j | jj ksJ d| jj|jddS )NzNot Python candidateTr:   )r   rA   r<   r=   r>   r   r   r   r   r       s    z)RequiresPythonRequirement.is_satisfied_byNr   r"   r#   __doc__r   r   r   r$   r   r   r   r   r    r   r   r   r   r@   s   s   

r@   c                   @   sX   e Zd ZdZdd Zdd Zdd Zedd	 Zed
d Z	dd Z
dd Zdd ZdS )UnsatisfiableRequirementz,A requirement that cannot be satisfied.
    c                 C   s
   || _ d S r   _name)r   r   r   r   r   r      s    z!UnsatisfiableRequirement.__init__c                 C   s   d | jS )Nz{} (unavailable))r   rI   r   r   r   r   r      s    z UnsatisfiableRequirement.__str__c                 C   s   dj | jjt| jdS )Nz{class_name}({name!r}))r   r   )r   r   r   r   rI   r   r   r   r   r      s    z!UnsatisfiableRequirement.__repr__c                 C   s   | j S r   rH   r   r   r   r   r      s    z%UnsatisfiableRequirement.project_namec                 C   s   | j S r   rH   r   r   r   r   r      s    zUnsatisfiableRequirement.namec                 C   s   t | S r   rC   r   r   r   r   r      s    z)UnsatisfiableRequirement.format_for_errorc                 C   s   dS )NrD   r   r   r   r   r   r      s    z-UnsatisfiableRequirement.get_candidate_lookupc                 C   s   dS )NFr   r   r   r   r   r       s    z(UnsatisfiableRequirement.is_satisfied_byNrE   r   r   r   r   rG      s   

rG   N)pip._vendor.packaging.utilsr   pip._internal.utils.typingr   baser   r   Z pip._vendor.packaging.specifiersr   Zpip._internal.req.req_installr   r	   r
   r   r%   r@   rG   r   r   r   r   <module>   s   );0