3
gD                 @   sf  d dl Z d dlZd dlZd dlmZmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZmZmZ G dd deZeejej Zed	j  Z!ed
j  Z"edj  Z#edj  Z$edj  Z%edj  Z&edj  Z'edZ(eee(e B Z)e
eee) Z*e*dZ+e*Z,eddZ-e'e- Z.e,ee%e,  Z/e!ee/ e" dZ0eej1e j2e j3B Z4eej1e j2e j3B Z5e4e5A Z6e
e6ee%e6  ddddZ7ee#e7 e$ e7B Z8e8j9dd  ee8dZ:e:j9dd  ee dZej9dd  e&Z;e;e Z<e:ee< Z=e.ee< Z>e+ee0 e>e=B  Z?ee? e Z@e@jAd G dd  d ZBdS )!    N)ListOptionalSet)
CombineLiteralr   ParseExceptionRegexWord
ZeroOrMoreoriginalTextFor	stringEndstringStart   )MARKER_EXPRMarker)LegacySpecifier	SpecifierSpecifierSetc               @   s   e Zd ZdZdS )InvalidRequirementzJ
    An invalid requirement was found, users should refer to PEP 508.
    N)__name__
__module____qualname____doc__ r   r   `/var/www/tester-filtro-web/env/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.pyr      s   r   [](),;@z-_.namez[^ ]+urlextrasF)Z
joinStringZadjacent	_raw_specc             C   s
   |j pdS )N )r%   )sltr   r   r   <lambda>@   s    r*   	specifierc             C   s   |d S )Nr   r   )r'   r(   r)   r   r   r   r*   C   s    markerc             C   s   t | |j|j S )N)r   Z_original_startZ_original_end)r'   r(   r)   r   r   r   r*   G   s    zx[]c               @   s<   e Zd ZdZeddddZedddZedd	d
ZdS )RequirementzParse 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  yt j|}W nH tk
rV } z,td||j|jd  d|j W Y d d }~X nX |j| _|jrtj	j
|j}|jdkrtj	j||jkrtdn.|jo|j s|j r|j rtd|j |j| _nd | _t|jr|jj ng | _t|j| _|jr|jnd | _d S )NzParse error at "   z": filezInvalid URL givenzInvalid URL: )REQUIREMENTparseStringr   r   locmsgr"   r#   urllibparseurlparsescheme
urlunparsenetlocsetr$   ZasListr   r+   r,   )selfr.   reqeZ
parsed_urlr   r   r   __init__d   s&    6


zRequirement.__init__)r/   c             C   s   | j g}| jr0djt| j}|jd| d | jrF|jt| j | jrn|jd| j  | jrn|jd | jr|jd| j  dj|S )Nr   r   r   z@  z; r&   )	r"   r$   joinsortedappendr+   strr#   r,   )r=   partsZformatted_extrasr   r   r   __str__}   s    
zRequirement.__str__c             C   s   d|  dS )Nz<Requirement('z')>r   )r=   r   r   r   __repr__   s    zRequirement.__repr__)r   r   r   r   rE   r@   rG   rH   r   r   r   r   r-   W   s   r-   )Crestringurllib.parser6   typingr   r   Z	TOptionalr   Zpip._vendor.pyparsingr   r   Lr   r   r	   r
   r   r   r   markersr   r   
specifiersr   r   r   
ValueErrorr   ascii_lettersdigitsZALPHANUMsuppressZLBRACKETZRBRACKETZLPARENZRPARENCOMMAZ	SEMICOLONATZPUNCTUATIONZIDENTIFIER_ENDZ
IDENTIFIERNAMEZEXTRAZURIURLZEXTRAS_LISTZEXTRAS
_regex_strVERBOSE
IGNORECASEZVERSION_PEP440ZVERSION_LEGACYZVERSION_ONEZVERSION_MANYZ_VERSION_SPECZsetParseActionZVERSION_SPECZMARKER_SEPARATORZMARKERZVERSION_AND_MARKERZURL_AND_MARKERZNAMED_REQUIREMENTr2   r3   r-   r   r   r   r   <module>   sZ   0

