+
     Xh  c                   sj    ^ RI Ht ^RIHt ^RIHtHt ]]! RRRRR7       ! R R4      4       4       tR	# )
i    )total_ordering)astuple)attribattrsFT)ZeqZorderZslotsZfrozenc                   s   a  ] tR t^
t o Rt]! ]R7      t]! ]R7      t]! ]R7      t	]! ]
R7      t]R 4       tR tR tR tR tRtV tR	# )
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
)Ztypec                s    VP                  R4      p\        V4      ^8X  d   VP                  R4       V ! \        V^ ,          4      \        V^,          4      \        V^,          4      V^,          R7      # )z&
Parse *s* and return a _VersionInfo.
Z.Zfinal)yearminormicroreleaselevel)ZsplitlenZappendint)ZclsZsZvs   && 7/usr/lib/python3.14/site-packages/attr/_version_info.py_from_version_stringZ VersionInfo._from_version_string&   sZ    
 GGCLq6Q;HHWQqT#ad)3qt91Q4
 	
    c                s   V P                   VP                   J d   \        V4      p\        V\        4      '       g   \        h^\        V4      u;8:  d   ^8:  g    \        h \        h\        V 4      R\        V4       V3# )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*.
N)Z	__class__r   Z
isinstanceZtupleNotImplementedErrorr	   )selfothers   &&r   _ensure_tupleZVersionInfo._ensure_tuple3   sl     >>U__,ENE%''%%SZ$1$%% %%%t}\s5z*E11r   c                s`     V P                  V4      w  r#W#8H  #   \         d
    \        u # i ; iNr   r   ZNotImplementedr   r   ZusZthem   &&  r   __eq__ZVersionInfo.__eq__F   s:    	"))%0HB z # 	"!!	"    --c                s`     V P                  V4      w  r#W#8  #   \         d
    \        u # i ; ir   r   r   r   r   __lt__ZVersionInfo.__lt__N   s:    	"))%0HB y # 	"!!	"r   c                sp    \        V P                  V P                  V P                  V P                  34      # r   )Zhashr   r   r   r   )r   s   &r   __hash__ZVersionInfo.__hash__X   s(    TYY

DJJ8I8IJKKr    N)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r
   r   r   r   Zstrr   Zclassmethodr   r   r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r   
   sa     ( sDEEs#L

 

2&L Lr   r   N)Z	functoolsr    Z_funcsr   Z_maker   r   r   r   r   r   <module>r      sB    %    %uD6ML ML 7 MLr   