o �J�h� �@s~ddlmZddlmZmZddlmZddlm Z ddl m Z m Z ddl mZddlmZGd d �d e�ZGd d �d �Zd S)�)� annotations)�Any�Iterator�)�parse_requirement)�ParserSyntaxError)�Marker�_normalize_extra_values)� SpecifierSet)�canonicalize_namec@seZdZdZdS)�InvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)�__name__� __module__� __qualname__�__doc__�rr�TC:\pinokio\api\whisper-webui.git\app\env\lib\site-packages\packaging\requirements.pyr sr c@sLeZdZdZddd�Zdd d �Zdd d �Zddd�Zddd�Zddd�Z dS)� 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�str�return�Nonec Cs�zt|�}Wnty}ztt|��|�d}~ww|j|_|jp"d|_t|jp)g�|_t|j �|_ d|_ |j durIt � t �|_ t |j �|j _dSdS�N)�_parse_requirementrr r�name�url�set�extrasr � specifier�markerr�__new__r Z_markers)�selfr�parsed�errr�__init__"s ��    �zRequirement.__init__r� Iterator[str]ccsz�|V|jrd�t|j��}d|�d�V|jrt|j�V|jr/d|j��V|jr/dV|jr;d|j��VdSdS)N�,�[�]z@ � z; )r�join�sortedrrrr)r!rZformatted_extrasrrr� _iter_parts1s� �zRequirement._iter_partscCsd�|�|j��S)N�)r*r,r�r!rrr�__str__CszRequirement.__str__cCs d|�d�S)Nz<Requirement('z')>rr.rrr�__repr__Fs zRequirement.__repr__�intcCs t|jjg|�t|j���R�Sr)�hash� __class__r r,r rr.rrr�__hash__Is ���zRequirement.__hash__�otherr�boolcCsRt|t�stSt|j�t|j�ko(|j|jko(|j|jko(|j|jko(|j|jkSr) � isinstancer�NotImplementedr rrrrr)r!r5rrr�__eq__Qs  � � � �zRequirement.__eq__N)rrrr)rrrr%)rr)rr1)r5rrr6) r rrrr$r,r/r0r4r9rrrrrs    rN)� __future__r�typingrr�_parserrrZ _tokenizerr�markersrr Z specifiersr �utilsr � ValueErrorr rrrrr�<module>s     
Memory