o
    Ëý°jb  ã                   @   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   úŸ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pkg_resources/_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>@   s   
 r-   Ú	specifierc                 C   s   |d S )Nr   r   r)   r   r   r   r-   C   s    Úmarkerc                 C   s   t | |j|j… ƒS )N)r   Ú_original_startÚ_original_endr)   r   r   r   r-   G   s    zx[]c                   @   s>   e Zd ZdZdeddfdd„Zdefdd„Zdef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.
    Úrequirement_stringÚreturnNc              
   C   s
  zt  |¡}W n ty& } ztd||j|jd … ›d|j› �ƒ‚d }~ww |j| _|jratj	 
|j¡}|jdkrHtj	 |¡|jkrGtdƒ‚n|jrT|jrT|js\|js\td|j› �ƒ‚|j| _nd | _t|jrm|j ¡ ng ƒ| _t|jƒ| _|jr€|j| _d S 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.   r/   )Úselfr3   ÚreqÚeÚ
parsed_urlr   r   r   Ú__init__d   s4    ÿ€ÿ
ÿÿÿ
zRequirement.__init__c                 C   s�   | j g}| jrd t| jƒ¡}| d|› d�¡ | jr#| t| jƒ¡ | jr7| d| j› �¡ | jr7| d¡ | jrC| d| j› �¡ d |¡S )Nr   r   r   z@ ú z; r(   )	r"   r$   ÚjoinÚsortedÚappendr.   Ústrr#   r/   )rC   ÚpartsÚformatted_extrasr   r   r   Ú__str__}   s   

zRequirement.__str__c                 C   s   d| › d�S )Nz<Requirement('z')>r   )rC   r   r   r   Ú__repr__‘   s   zRequirement.__repr__)r   r   r   r   rL   rG   rO   rP   r   r   r   r   r2   W   s
    r2   )CÚreÚstringÚurllib.parser;   Útypingr   r   Ú	TOptionalr   Úpkg_resources.extern.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_REQUIREMENTr7   r8   r2   r   r   r   r   Ú<module>   sb   0ÿþÿ
