o
    ÌÍj+  ã                   @  sŒ   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d„ZG dd	„ d	eƒZG dd
„ d
ƒZdS )é    )Úannotations)ÚIteratoré   )Úparse_requirement)ÚParserSyntaxError)ÚMarkerÚ_normalize_extra_values)ÚSpecifierSet)Úcanonicalize_nameÚInvalidRequirementÚRequirementÚreturnú	list[str]c                   C  s   t S ©N)Ú__all__© r   r   úc/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pip/_vendor/packaging/requirements.pyÚ__dir__   s   r   c                   @  s   e Zd ZdZdS )r   zJ
    An invalid requirement was found, users should refer to PEP 508.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r      s    c                   @  s`   e Zd ZdZddd„Zdd
d„Zd dd„Zd!dd„Zd dd„Zd dd„Z	d"dd„Z
d#dd„ZdS )$r   a{  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.

    Instances are safe to serialize with :mod:`pickle`. They use a stable
    format so the same pickle can be loaded in future packaging releases.

    .. versionchanged:: 26.2

        Added a stable pickle format. Pickles created with packaging 26.2+ can
        be unpickled with future releases.  Backward compatibility with pickles
        from pip._vendor.packaging < 26.2 is supported but may be removed in a future
        release.
    Úrequirement_stringÚstrr   ÚNonec              
   C  s–   zt |ƒ}W n ty } ztt|ƒƒ|‚d }~ww |j| _|jp"d | _t|jp)g ƒ| _t|j	ƒ| _	d | _
|j
d urIt t¡| _
t|j
ƒ| j
_d S d S r   )Ú_parse_requirementr   r   r   ÚnameÚurlÚsetÚextrasr	   Ú	specifierÚmarkerr   Ú__new__r   Ú_markers)Úselfr   ÚparsedÚer   r   r   Ú__init__5   s   €ÿ
þzRequirement.__init__r   úIterator[str]c                 c  sz    |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_extrasr   r   r   Ú_iter_partsD   s   €ÿzRequirement._iter_partsc                 C  s   t | ƒS r   )r   ©r$   r   r   r   Ú__getstate__V   s   zRequirement.__getstate__ÚstateÚobjectc              
   C  s”   t |tƒr6zt|ƒ}W n ty } ztd|›ƒ|‚d }~ww |j| _|j| _|j| _|j| _|j	| _	d S t |t
ƒrC| j |¡ d S td|›ƒ‚)Nz Cannot restore Requirement from )Ú
isinstancer   r   r   Ú	TypeErrorr   r   r   r    r!   ÚdictÚ__dict__Úupdate)r$   r3   ÚtmpÚexcr   r   r   Ú__setstate__[   s"   
€ÿ
zRequirement.__setstate__c                 C  s   d  |  | j¡¡S )NÚ )r-   r0   r   r1   r   r   r   Ú__str__n   s   zRequirement.__str__c                 C  s   d| j j› dt| ƒ›dS )Nú<ú(z)>)Ú	__class__r   r   r1   r   r   r   Ú__repr__q   s   zRequirement.__repr__Úintc                 C  s   t t|  t| jƒ¡ƒƒS r   )ÚhashÚtupler0   r
   r   r1   r   r   r   Ú__hash__t   s   zRequirement.__hash__ÚotherÚboolc                 C  sR   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   )	r5   r   ÚNotImplementedr
   r   r   r    r   r!   )r$   rG   r   r   r   Ú__eq__w   s   

ÿ
þ
ý
ûzRequirement.__eq__N)r   r   r   r   )r   r   r   r(   )r   r   )r3   r4   r   r   )r   rC   )rG   r4   r   rH   )r   r   r   r   r'   r0   r2   r<   r>   rB   rF   rJ   r   r   r   r   r      s    






N)r   r   )Ú
__future__r   Útypingr   Ú_parserr   r   Z
_tokenizerr   Úmarkersr   r   Ú
specifiersr	   Úutilsr
   r   r   Ú
ValueErrorr   r   r   r   r   r   Ú<module>   s   þ
