
    Ri6                        d dl 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 ddlmZ  G d	 d
e          Z G d d          ZdS )    )annotations)Iterator   )parse_requirement)ParserSyntaxError)Marker_normalize_extra_values)SpecifierSet)canonicalize_namec                      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__     i/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/requirements.pyr   r      s           r   r   c                  B    e Zd ZdZddZdd	Zdd
ZddZddZddZ	dS )RequirementzParse 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                   	 t          |          }n/# t          $ r"}t          t          |                    |d }~ww xY w|j        | _        |j        pd | _        t          |j        pg           | _        t          |j	                  | _	        d | _
        |j
        >t          j        t                    | _
        t          |j
                  | j
        _        d S d S N)_parse_requirementr   r   r   nameurlsetextrasr
   	specifiermarkerr   __new__r	   _markers)selfr   parsedes       r   __init__zRequirement.__init__"   s    	4'(:;;FF  	4 	4 	4$SVV,,!3	4  	%z1T #FM$7R 8 8'3F4D'E'E%)=$ .00DK#:6=#I#IDK    %$s    
>9>r   Iterator[str]c              #    K   |V  | j         r/d                    t          | j                             }d| dV  | j        rt	          | j                  V  | j        rd| j         V  | j        rdV  | j        rd| j         V  d S d S )N,[]z @  z; )r!   joinsortedr"   r   r   r#   )r&   r   formatted_extrass      r   _iter_partszRequirement._iter_parts1   s      


; 	*"xxt{(;(;<<)&))))))> 	&dn%%%%%8 	""""""{ 			; 	%$t{$$$$$$$	% 	%r   c                \    d                     |                     | j                            S )N )r0   r3   r   r&   s    r   __str__zRequirement.__str__C   s$    wwt''	22333r   c                (    d| j         j         d|  dS )N<z('z')>)	__class__r   r6   s    r   __repr__zRequirement.__repr__F   s     74>*77d7777r   intc           	         t          t          |                     t          | j                                                S r   )hashtupler3   r   r   r6   s    r   __hash__zRequirement.__hash__I   s1    E$**+<TY+G+GHHIIJJJr   otherobjectboolc                   t          |t                    st          S t          | j                  t          |j                  k    o?| j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    S r   )	
isinstancer   NotImplementedr   r   r!   r"   r   r#   )r&   rA   s     r   __eq__zRequirement.__eq__L   s    %-- 	"!! di((,=ej,I,II ,u|+,%/1, EI%, u|+	
r   N)r   r   r   r   )r   r   r   r*   )r   r   )r   r<   )rA   rB   r   rC   )
r   r   r   r   r)   r3   r7   r;   r@   rG   r   r   r   r   r      s         J J J J% % % %$4 4 4 48 8 8 8K K K K

 

 

 

 

 

r   r   N)
__future__r   typingr   _parserr   r   
_tokenizerr   markersr   r	   
specifiersr
   utilsr   
ValueErrorr   r   r   r   r   <module>rP      s    # " " " " "       < < < < < < ) ) ) ) ) ) 4 4 4 4 4 4 4 4 $ $ $ $ $ $ $ $ $ $ $ $       A
 A
 A
 A
 A
 A
 A
 A
 A
 A
r   