
    Ki                        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 d	d
gZddZ G d d	e      Z G d d
      Zy)    )annotations)Iterator   )parse_requirement)ParserSyntaxError)Marker_normalize_extra_values)SpecifierSet)canonicalize_nameInvalidRequirementRequirementc                     t         S N)__all__     b/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/packaging/requirements.py__dir__r      s    Nr   c                      e Zd ZdZy)r   zJ
    An invalid requirement was found, users should refer to PEP 508.
    N)__name__
__module____qualname____doc__r   r   r   r   r      s    r   c                  @    e Zd ZdZd	dZd
dZddZddZddZddZ	y)r   zParse 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.
    c                   	 t        |      }|j                  | _        |j
                  xs d | _        t        |j                  xs g       | _        t        |j                        | _	        d | _
        |j                  Ct        j                  t              | _
        t        |j                        | j                  _        y y # t        $ r}t        t        |            |d }~ww xY wr   )_parse_requirementr   r   strnameurlsetextrasr
   	specifiermarkerr   __new__r	   _markers)selfrequirement_stringparsedes       r   __init__zRequirement.__init__+   s    	4'(:;F  	%zz1T #FMM$7R 8'3F4D4D'E%)==$ ..0DK#:6==#IDKK  % ! 	4$SV,!3	4s   C 	C%C  C%c              #  `  K   | | j                   r,dj                  t        | j                               }d| d | j                  rt	        | j                         | j
                  r!d| j
                    | j                  rd | j                  rd| j                    y y w)N,[]z @  z; )r!   joinsortedr"   r   r   r#   )r&   r   formatted_extrass      r   _iter_partszRequirement._iter_parts:   s     
;;"xxt{{(;<&'q))>>dnn%%88z""{{	;;t{{m$$ s   B,B.c                V    dj                  | j                  | j                              S )N )r0   r3   r   r&   s    r   __str__zRequirement.__str__L   s     wwt''		233r   c                N    d| j                   j                   dt        |       dS )N<(z)>)	__class__r   r   r6   s    r   __repr__zRequirement.__repr__O   s&    4>>**+1SYM<<r   c           	     n    t        t        | j                  t        | j                                          S r   )hashtupler3   r   r   r6   s    r   __hash__zRequirement.__hash__R   s'    E$**+<TYY+GHIJJr   c                \   t        |t              st        S t        | j                        t        |j                        k(  xrj | j
                  |j
                  k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r   )	
isinstancer   NotImplementedr   r   r!   r"   r   r#   )r&   others     r   __eq__zRequirement.__eq__U   s    %-!! dii(,=ejj,II ,u||+,%//1, EII%, u||+	
r   N)r'   r   returnNone)r   r   rF   zIterator[str])rF   r   )rF   int)rD   objectrF   bool)
r   r   r   r   r*   r3   r7   r<   r@   rE   r   r   r   r   r      s'    J%$4=K

r   N)rF   z	list[str])
__future__r   typingr   _parserr   r   
_tokenizerr   markersr   r	   
specifiersr
   utilsr   r   r   
ValueErrorr   r   r   r   r   <module>rS      sH    #  < ) 4 $ $  A
 A
r   