a
    1$eI                     @   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                   @   s\   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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   N/var/www/html/django/DPS/env/lib/python3.9/site-packages/attr/_version_info.py_from_version_string&   s    

$z VersionInfo._from_version_stringc                 C   sX   | j |j u rt|}t|ts"tdt|  kr:dks@n 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   s2   z|  |\}}W n ty(   t Y S 0 ||kS Nr&   r#   NotImplementedr$   r%   usthemr   r   r   __eq__F   s
    
zVersionInfo.__eq__c                 C   s2   z|  |\}}W n ty(   t Y S 0 ||k S r'   r(   r*   r   r   r   __lt__N   s
    
zVersionInfo.__lt__N)__name__
__module____qualname____doc__r   r   r   r   r   strr   classmethodr   r&   r-   r.   r   r   r   r   r   
   s   




r   N)	functoolsr   _funcsr   _maker   r   r   r   r   r   r   <module>   s
   