File: //opt/alt/python37/lib/python3.7/site-packages/packaging/__pycache__/requirements.cpython-37.pyc
B
��fu � @ sz d dl mZmZmZmZ ddlmZ ddlm Z ddl
mZmZ ddl
mZ ddlmZ G dd � d e�ZG d
d� d�ZdS )
� )�Any�Iterator�Optional�Set� )�parse_requirement)�ParserSyntaxError)�Marker�_normalize_extra_values)�SpecifierSet)�canonicalize_namec @ s e Zd ZdZdS )�InvalidRequirementzJ
An invalid requirement was found, users should refer to PEP 508.
N)�__name__�
__module__�__qualname__�__doc__� r r �G/opt/alt/python37/lib/python3.7/site-packages/packaging/requirements.pyr
s r
c @ sn e Zd ZdZedd�dd�Zeee d�dd�Zed �d
d�Zed �dd
�Z e
d �dd�Zee
d�dd�ZdS )�Requirementz�Parse a requirement.
Parse a given requirement string into its parts, such as name, specifier,
URL, and extras. Raises InvalidRequirement on a badly-formed requirement
string.
N)�requirement_string�returnc
C s� yt |�}W n0 tk
r< } ztt|��|�W d d }~X Y nX |j| _|jpNd | _t|jp\g �| _t|j �| _ d | _
|j
d k r�t�t�| _
t
|j
�| j
_d S )N)�_parse_requirementr r
�str�name�url�set�extrasr � specifier�markerr �__new__r
�_markers)�selfr �parsed�er r r �__init__! s
zRequirement.__init__)r r c c st |V | j r*d�t| j ��}d|� d�V | jr<t| j�V | jr\d| j� �V | jr\dV | jrpd| j� �V d S )N�,�[�]z@ � z; )r �join�sortedr r r r )r! r Zformatted_extrasr r r �_iter_parts0 s zRequirement._iter_parts)r c C s d� | �| j��S )N� )r) r+ r )r! r r r �__str__B s zRequirement.__str__c C s d| � d�S )Nz<Requirement('z')>r )r! r r r �__repr__E s zRequirement.__repr__c C s t | jjf| �t| j����S )N)�hash� __class__r r+ r r )r! r r r �__hash__H s zRequirement.__hash__)�otherr c C sR t |t�stS t| j�t|j�koP| j|jkoP| j|jkoP| j|jkoP| j|jkS )N) �
isinstancer �NotImplementedr r r r r r )r! r2 r r r �__eq__P s
zRequirement.__eq__)r r r r r r$ r r+ r- r. �intr1 r �boolr5 r r r r r s r N)�typingr r r r �_parserr r �
_tokenizerr �markersr r
�
specifiersr �utilsr �
ValueErrorr
r r r r r �<module> s