a
    hbòf5  ã                   @   s˜  d dl mZmZmZ d dlZd dlZd dlmZmZm	Z	m
Z
 d dlmZmZmZmZmZ d dlmZ d dlmZ ddlmZ dd	lmZmZ dd
lmZmZmZ er°d dlmZ G dd„ de ƒZ!eej"ej# ƒZ$edƒ %¡ Z&edƒ %¡ Z'edƒ %¡ Z(edƒ %¡ Z)edƒ %¡ Z*edƒ %¡ Z+edƒ %¡ Z,edƒZ-e$ee-ƒe$ B Z.ee$ee.ƒ ƒZ/e/dƒZ0e/Z1edƒdƒZ2e,e2 Z3e1ee*e1 ƒ Z4e&ee4ƒ e' dƒZ5eej6ej7ej8B ƒZ9eej6ej7ej8B ƒZ:e9e:A Z;ee;ee*e; ƒ ddd�dƒZ<ee(e< e) e<B ƒZ=e= >dd„ ¡ e	e=ƒdƒZ?e? >d d„ ¡ e	eƒ ƒd!ƒZe >d"d„ ¡ e+Z@e@e ZAe?eeAƒ ZBe3eeAƒ ZCe0ee5ƒ eCeBB  ZDeeD e ZEeE Fd#¡ G d$d%„ d%eGƒZHdS )&é    )Úabsolute_importÚdivisionÚprint_functionN)ÚstringStartÚ	stringEndÚoriginalTextForÚParseException)Ú
ZeroOrMoreÚWordÚOptionalÚRegexÚCombine)ÚLiteral)Úparseé   )ÚTYPE_CHECKING)ÚMARKER_EXPRÚMarker)ÚLegacySpecifierÚ	SpecifierÚSpecifierSet)ÚListc                   @   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   úf/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/setuptools/_vendor/packaging/requirements.pyr      s   r   ú[ú]ú(ú)ú,ú;ú@z-_.Únamez[^ ]+ÚurlÚextrasF)Ú
joinStringÚadjacentÚ	_raw_specc                 C   s
   |j pdS )NÚ )r+   ©ÚsÚlÚtr   r   r   Ú<lambda>;   ó    r1   Ú	specifierc                 C   s   |d S )Nr   r   r-   r   r   r   r1   >   r2   Úmarkerc                 C   s   t | |j|j… ƒS )N)r   Ú_original_startÚ_original_endr-   r   r   r   r1   B   r2   zx[]c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	Ú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.
    c              
   C   s  zt  |¡}W nF tyT } z.td ||j|jd … |j¡ƒ‚W Y d }~n
d }~0 0 |j| _|jrÆt	 	|j¡}|j
dkr”t	 |¡|jkr¼tdƒ‚n(|j
r¬|jr¬|j
s¼|js¼td |j¡ƒ‚|j| _nd | _t|jrÞ|j ¡ ng ƒ| _t|jƒ| _|jrþ|jnd | _d S )NzParse error at "{0!r}": {1}é   ÚfilezInvalid URL givenzInvalid URL: {0})ÚREQUIREMENTÚparseStringr   r   ÚformatÚlocÚmsgr&   r'   ÚurlparseÚschemeÚ
urlunparseÚnetlocÚsetr(   ÚasListr   r3   r4   )ÚselfÚrequirement_stringÚreqÚeÚ
parsed_urlr   r   r   Ú__init___   s2    ÿÿ

ÿÿ
zRequirement.__init__c                 C   sŠ   | j g}| jr*| d d t| jƒ¡¡¡ | jr@| t| jƒ¡ | jrh| d | j¡¡ | j	rh| d¡ | j	r€| d | j	¡¡ d |¡S )Nz[{0}]r#   z@ {0}ú z; {0}r,   )
r&   r(   Úappendr<   ÚjoinÚsortedr3   Ústrr'   r4   )rE   Úpartsr   r   r   Ú__str__{   s    
zRequirement.__str__c                 C   s   d  t| ƒ¡S )Nz<Requirement({0!r})>)r<   rO   )rE   r   r   r   Ú__repr__�   s    zRequirement.__repr__N)r   r   r   r   rJ   rQ   rR   r   r   r   r   r7   R   s   r7   )IÚ
__future__r   r   r   ÚstringÚreZsetuptools.extern.pyparsingr   r   r   r   r	   r
   r   r   r   r   ÚLÚurllibr   r?   Z_typingr   Úmarkersr   r   Ú
specifiersr   r   r   Útypingr   Ú
ValueErrorr   Úascii_lettersÚdigitsÚALPHANUMÚsuppressÚLBRACKETÚRBRACKETÚLPARENÚRPARENÚCOMMAÚ	SEMICOLONÚATÚPUNCTUATIONÚIDENTIFIER_ENDÚ
IDENTIFIERÚNAMEÚEXTRAÚURIÚURLÚEXTRAS_LISTÚEXTRASÚ
_regex_strÚVERBOSEÚ
IGNORECASEÚVERSION_PEP440ÚVERSION_LEGACYÚVERSION_ONEÚVERSION_MANYÚ_VERSION_SPECÚsetParseActionÚVERSION_SPECÚMARKER_SEPARATORÚMARKERÚVERSION_AND_MARKERÚURL_AND_MARKERÚNAMED_REQUIREMENTr:   r;   Úobjectr7   r   r   r   r   Ú<module>   sj   ÿþÿ
