<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    T^r                 @   sd   d dl mZmZmZ 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
eZdS )    )absolute_importdivisionprint_function)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   C/opt/alt/python37/lib/python3.7/site-packages/attr/_version_info.py_from_version_string%   s
    

z VersionInfo._from_version_stringc             C   sX   | j |j k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_tuple2   s    
zVersionInfo._ensure_tuplec             C   s0   y|  |\}}W n tk
r&   tS X ||kS )N)r)   r&   NotImplemented)r'   r(   usthemr   r   r    __eq__E   s
    zVersionInfo.__eq__c             C   s0   y|  |\}}W n tk
r&   tS X ||k S )N)r)   r&   r*   )r'   r(   r+   r,   r   r   r    __lt__M   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)Z
__future__r   r   r   	functoolsr   Z_funcsr   _maker   r	   objectr   r   r   r   r    <module>   s   