a
    hbòfD  ã                   @   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	ƒ  ¡ 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ƒ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 ƒZ8e8 9dd„ ¡ ee8ƒdƒZ:e: 9dd„ ¡ eeƒ ƒdƒZe 9d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@ Ad¡ 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   ú_/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_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>@   ó    r-   Ú	specifierc                 C   s   |d S )Nr   r   r)   r   r   r   r-   C   r.   Úmarkerc                 C   s   t | |j|j… ƒS )N)r   Ú_original_startÚ_original_endr)   r   r   r   r-   G   r.   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 )Ú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  zt  |¡}W nJ tyX } z2td||j|jd … ›d|j› �ƒ‚W Y d }~n
d }~0 0 |j| _|jrÎtj	 
|j¡}|jdkrœtj	 |¡|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 "é   z": ÚfilezInvalid URL givenzInvalid URL: )ÚREQUIREMENTÚparseStringr   r   ÚlocÚmsgr"   r#   ÚurllibÚparseÚurlparseÚschemeÚ
urlunparseÚnetlocÚsetr$   ÚasListr   r/   r0   )Úselfr4   ÚreqÚeÚ
parsed_urlr   r   r   Ú__init__d   s.     ÿ

ÿÿ
zRequirement.__init__)r5   c                 C   s�   | j g}| jr0d t| jƒ¡}| d|› d�¡ | jrF| t| jƒ¡ | jrn| d| j› �¡ | jrn| d¡ | jr†| d| j› �¡ d |¡S )Nr   r   r   z@ ú z; r(   )	r"   r$   ÚjoinÚsortedÚappendr/   Ústrr#   r0   )rD   ÚpartsÚformatted_extrasr   r   r   Ú__str__}   s    
zRequirement.__str__c                 C   s   d| › d�S )Nz<Requirement('z')>r   )rD   r   r   r   Ú__repr__‘   s    zRequirement.__repr__)r   r   r   r   rM   rH   rP   rQ   r   r   r   r   r3   W   s   r3   )CÚreÚstringÚurllib.parser<   Útypingr   r   Ú	TOptionalr   Úpip._vendor.pyparsingr   r   ÚLr   r   r	   r
   r   r   r   Úmarkersr   r   Ú
specifiersr   r   r   Ú
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_REQUIREMENTr8   r9   r3   r   r   r   r   Ú<module>   s`   0ÿþÿ
