o
    "“i®  ã                   @   sN   d dl mZ ddlmZ ddlmZmZ eeddddd�G dd	„ d	ƒƒƒZd
S )é    )Útotal_orderingé   )Úastuple)ÚattribÚattrsFT)ÚeqÚorderÚslotsÚfrozenc                   @   sd   e Zd ZdZeed�Zeed�Zeed�Zee	d�Z
edd„ ƒZdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚVersionInfoa›  
    A version object that can be compared to tuple of length 1--4:

    >>> attr.VersionInfo(19, 1, 0, "final")  <= (19, 2)
    True
    >>> attr.VersionInfo(19, 1, 0, "final") < (19, 1, 1)
    True
    >>> vi = attr.VersionInfo(19, 2, 0, "final")
    >>> vi < (19, 1, 1)
    False
    >>> vi < (19,)
    False
    >>> vi == (19, 2,)
    True
    >>> vi == (19, 2, 1)
    False

    .. versionadded:: 19.2
    )Útypec                 C   sL   |  d¡}t|ƒdkr| d¡ | t|d ƒt|d ƒt|d ƒ|d d�S )z6
        Parse *s* and return a _VersionInfo.
        Ú.é   Úfinalr   r   é   )ÚyearÚminorÚmicroÚreleaselevel)ÚsplitÚlenÚappendÚint)ÚclsÚsÚv© r   úR/var/www/html/premium_crap/venv/lib/python3.10/site-packages/attr/_version_info.pyÚ_from_version_string&   s   

$ÿz VersionInfo._from_version_stringc                 C   sZ   | j |j u r
t|ƒ}t|tƒst‚dt|ƒ  krdks!t‚ t‚t| ƒdt|ƒ… |fS )z®
        Ensure *other* is a tuple of a valid length.

        Returns a possibly transformed *other* and ourselves as a tuple of
        the same length as *other*.
        r   é   N)Ú	__class__r   Ú
isinstanceÚtupleÚNotImplementedErrorr   )ÚselfÚotherr   r   r   Ú_ensure_tuple3   s   
ÿzVersionInfo._ensure_tuplec                 C   s0   z|   |¡\}}W ||kS  ty   t Y S w ©N©r&   r#   ÚNotImplemented©r$   r%   ÚusÚthemr   r   r   Ú__eq__F   s   ýÿzVersionInfo.__eq__c                 C   s0   z|   |¡\}}W ||k S  ty   t Y S w r'   r(   r*   r   r   r   Ú__lt__N   s   ûÿzVersionInfo.__lt__c                 C   s   t | j| j| j| jfƒS r'   )Úhashr   r   r   r   )r$   r   r   r   Ú__hash__X   s   zVersionInfo.__hash__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   Ústrr   Úclassmethodr   r&   r-   r.   r0   r   r   r   r   r   
   s    





r   N)Ú	functoolsr   Ú_funcsr   Ú_maker   r   r   r   r   r   r   Ú<module>   s   