3
gO                 @   s   d dl mZ d dlmZmZ d dlmZ ddlmZm	Z	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 )    )SpecifierSet)NormalizedNamecanonicalize_name)InstallRequirement   )	CandidateCandidateLookupRequirementformat_namec               @   s   e Zd ZeddddZedddZeddd	Zee	dd
dZ
eedddZedddZedddZeedddZdS )ExplicitRequirementN)	candidatereturnc             C   s
   || _ d S )N)r   )selfr    r   n/var/www/tester-filtro-web/env/lib/python3.6/site-packages/pip/_internal/resolution/resolvelib/requirements.py__init__
   s    zExplicitRequirement.__init__)r   c             C   s
   t | jS )N)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 )N)r   project_name)r   r   r   r   r      s    z ExplicitRequirement.project_namec             C   s   | j jS )N)r   name)r   r   r   r   r      s    zExplicitRequirement.namec             C   s
   | j j S )N)r   format_for_error)r   r   r   r   r       s    z$ExplicitRequirement.format_for_errorc             C   s
   | j d fS )N)r   )r   r   r   r   get_candidate_lookup#   s    z(ExplicitRequirement.get_candidate_lookupc             C   s
   || j kS )N)r   )r   r   r   r   r   is_satisfied_by&   s    z#ExplicitRequirement.is_satisfied_by)r   
__module____qualname__r   r   r   r   r   propertyr   r   r   r   r   r   boolr   r   r   r   r   r   	   s   r   c               @   s   e Zd ZeddddZedddZeddd	Zee	dd
dZ
eedddZedddZedddZeedddZdS )SpecifierRequirementN)ireqr   c             C   s(   |j d kstd|| _t|j| _d S )NzThis is a link, not a specifier)linkAssertionError_ireq	frozensetextras_extras)r   r#   r   r   r   r   +   s    zSpecifierRequirement.__init__)r   c             C   s   t | jjS )N)r   r&   req)r   r   r   r   r   0   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   3   s    zSpecifierRequirement.__repr__c             C   s   | j jstdt| j jjS )Nz'Specifier-backed ireq is always PEP 508)r&   r*   r%   r   r   )r   r   r   r   r   9   s    z!SpecifierRequirement.project_namec             C   s   t | j| jS )N)r
   r   r)   )r   r   r   r   r   >   s    zSpecifierRequirement.namec             C   sZ   dd t | jdD }t|dkr(dS t|dkr<|d S dj|d d	 d |d
  S )Nc             S   s   g | ]}|j  qS r   )strip).0sr   r   r   
<listcomp>H   s    z9SpecifierRequirement.format_for_error.<locals>.<listcomp>,r    r   z, z and r2   )r   splitlenjoin)r   partsr   r   r   r   B   s    z%SpecifierRequirement.format_for_errorc             C   s
   d | j fS )N)r&   )r   r   r   r   r   P   s    z)SpecifierRequirement.get_candidate_lookup)r   r   c             C   sN   |j | j ks$td|j  d| j  | jjs4td| jjj}|j|jddS )Nz6Internal issue: Candidate is not for this requirement z vs z'Specifier-backed ireq is always PEP 508T)prereleases)r   r%   r&   r*   	specifiercontainsversion)r   r   specr   r   r   r   S   s
    
z$SpecifierRequirement.is_satisfied_by)r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r!   r   r   r   r   r   r"   *   s   r"   c               @   s   e Zd ZdZeeddddZedddZedd	d
Z	e
edddZe
edddZedddZedddZeedddZdS )RequiresPythonRequirementz4A requirement representing Requires-Python metadata.N)r8   matchr   c             C   s   || _ || _d S )N)r8   
_candidate)r   r8   r=   r   r   r   r   c   s    z"RequiresPythonRequirement.__init__)r   c             C   s   d| j  S )NzPython )r8   )r   r   r   r   r   g   s    z!RequiresPythonRequirement.__str__c             C   s   dj | jjt| jdS )Nz{class_name}({specifier!r}))r   r8   )r   r   r   r   r8   )r   r   r   r   r   j   s    z"RequiresPythonRequirement.__repr__c             C   s   | j jS )N)r>   r   )r   r   r   r   r   p   s    z&RequiresPythonRequirement.project_namec             C   s   | j jS )N)r>   r   )r   r   r   r   r   t   s    zRequiresPythonRequirement.namec             C   s   t | S )N)r   )r   r   r   r   r   x   s    z*RequiresPythonRequirement.format_for_errorc             C   s"   | j j| jjddr| jd fS dS )NT)r7   )NN)r8   r9   r>   r:   )r   r   r   r   r   {   s    
z.RequiresPythonRequirement.get_candidate_lookup)r   r   c             C   s(   |j | jj kstd| jj|jddS )NzNot Python candidateT)r7   )r   r>   r%   r8   r9   r:   )r   r   r   r   r   r      s    z)RequiresPythonRequirement.is_satisfied_by)r   r   r   __doc__r   r   r   r   r   r   r    r   r   r   r   r   r   r!   r   r   r   r   r   r<   `   s   r<   c               @   s   e Zd ZdZeddddZedddZedd	d
Ze	edddZ
e	edddZedddZedddZeedddZdS )UnsatisfiableRequirementz'A requirement that cannot be satisfied.N)r   r   c             C   s
   || _ d S )N)_name)r   r   r   r   r   r      s    z!UnsatisfiableRequirement.__init__)r   c             C   s   | j  dS )Nz (unavailable))rA   )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   rA   )r   r   r   r   r      s    z!UnsatisfiableRequirement.__repr__c             C   s   | j S )N)rA   )r   r   r   r   r      s    z%UnsatisfiableRequirement.project_namec             C   s   | j S )N)rA   )r   r   r   r   r      s    zUnsatisfiableRequirement.namec             C   s   t | S )N)r   )r   r   r   r   r      s    z)UnsatisfiableRequirement.format_for_errorc             C   s   dS )N)NNr   )r   r   r   r   r      s    z-UnsatisfiableRequirement.get_candidate_lookup)r   r   c             C   s   dS )NFr   )r   r   r   r   r   r      s    z(UnsatisfiableRequirement.is_satisfied_by)r   r   r   r?   r   r   r   r   r   r    r   r   r   r   r   r   r!   r   r   r   r   r   r@      s   r@   N) pip._vendor.packaging.specifiersr   pip._vendor.packaging.utilsr   r   pip._internal.req.req_installr   baser   r   r	   r
   r   r"   r<   r@   r   r   r   r   <module>   s   !6(