
    ,hI                     h    d dl mZ ddlmZ ddlmZmZ e edddd       G d d	                    Zy
)    )total_ordering   )astuple)attribattrsFT)eqorderslotsfrozenc                   z    e Zd ZdZ ee      Z ee      Z ee      Z ee	      Z
ed        Zd Zd Zd Zy)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                     |j                  d      }t        |      dk(  r|j                  d        | t        |d         t        |d         t        |d         |d         S )z6
        Parse *s* and return a _VersionInfo.
        .   finalr   r      )yearminormicroreleaselevel)splitlenappendint)clssvs      T/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/attr/_version_info.py_from_version_stringz VersionInfo._from_version_string&   sZ    
 GGCLq6Q;HHWQqT#ad)3qt91Q4
 	
    c                     | j                   |j                   u rt        |      }t        |t              st        dt        |      cx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others     r   _ensure_tuplezVersionInfo._ensure_tuple3   si     >>U__,ENE%'%%SZ$1$%% %%%t}\s5z*E11r!   c                 `    	 | j                  |      \  }}||k(  S # t        $ r	 t        cY S w xY wNr*   r'   NotImplementedr(   r)   usthems       r   __eq__zVersionInfo.__eq__F   s>    	"))%0HB Tz # 	"!!	"    --c                 `    	 | j                  |      \  }}||k  S # t        $ r	 t        cY S w xY wr,   r-   r/   s       r   __lt__zVersionInfo.__lt__N   s>    	"))%0HB Dy # 	"!!	"r3   N)__name__
__module____qualname____doc__r   r   r   r   r   strr   classmethodr    r*   r2   r5    r!   r   r   r   
   sR    ( sDEEs#L

 

2&r!   r   N)	functoolsr   _funcsr   _maker   r   r   r<   r!   r   <module>r@      s?    %    %uD6J J 7 Jr!   