a
    ýÓEbD  ã                   @   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   úb/home/ja/django-apps/lartica_env/lib/python3.9/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>@   ó    r+   Ú	specifierc                 C   s   |d S )Nr   r   r'   r   r   r   r+   C   r,   Úmarkerc                 C   s   t | |j|j… ƒS )N)r   Z_original_startZ_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$   ZasListr   r-   r.   )Úselfr0   ÚreqÚeÚ
parsed_urlr   r   r   Ú__init__d   s.     ÿ

ÿÿ
zRequirement.__init__)r1   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#   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   rH   rC   rJ   rK   r   r   r   r   r/   W   s   r/   )CÚreÚstringÚurllib.parser8   Útypingr   r   Z	TOptionalr   Zpip._vendor.pyparsingr   r   ÚLr   r   r	   r
   r   r   r   Úmarkersr   r   Z
specifiersr   r   r   Ú
ValueErrorr   Úascii_lettersÚdigitsZALPHANUMÚsuppressZLBRACKETZRBRACKETZLPARENZRPARENÚCOMMAZ	SEMICOLONÚATZPUNCTUATIONZIDENTIFIER_ENDÚ
IDENTIFIERÚNAMEZEXTRAZURIÚURLZEXTRAS_LISTZEXTRASZ
_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_REQUIREMENTr4   r5   r/   r   r   r   r   Ú<module>   s`   0ÿþÿ
