
    s
e                        U d Z ddlmZ dgZddlZddlZddlZ ej        d          Z	de
d<    G d d	ej                  Z ej        d
e          ZddZddZddZdS )z!Utilities for version comparison.    )annotationscompareNz([0-9]+)z!typing.Final[typing.Pattern[str]]NUMBERc                      e Zd ZdZddZdS )	SupportsLessThanz*Value that can be compared to another one.other
typing.Anyreturnboolc                    dS )z&Check if value is less than other one.N )selfr   s     Elib/python3.11/site-packages/navigator_updater/utils/version_utils.py__lt__zSupportsLessThan.__lt__   s          N)r   r	   r
   r   )__name__
__module____qualname____doc__r   r   r   r   r   r      s.        445 5 5 5 5 5r   r   SupportsLessThanT)boundfirstsecondr
   intc                &    | |k     rdS || k     rdS dS )z
    Compare two values.

    :return: :code:`1` if :code:`first` > :code:`second`; :code:`-1` if :code:`first` < :code:`second`; :code:`0` if
             both values are equal.
       r   r   r   r   s     r   _comparer      s%     v~~r~~q1r   valuestr)typing.Tuple[typing.Union[int, str], ...]c                ~    t          d t          t                              |                     D                       S )zBParse any version-like string into tuple of integer-string values.c              3  b   K   | ]*\  }}|d z  rt          |          nt          |          V  +dS )   N)r   r!   ).0indexparts      r   	<genexpr>z_parse.<locals>.<genexpr>,   sS        E4 ai/D			c$ii     r   )tuple	enumerater   split)r    s    r   _parser-   *   sD      $V\\%%8%899     r   c                    	 t          t          j                            |           t          j                            |                    S # t          j        j        $ r- t          t          |           t          |                    cY S w xY w)z"Compare two strings with versions.)r   	packagingversionVersionInvalidVersionr-   r   s     r   r   r   2   s}    7	)11%88):K:S:STZ:[:[\\\+ 7 7 7uvf~~666667s   A	A >BB)r   r   r   r   r
   r   )r    r!   r
   r"   )r   r!   r   r!   r
   r   )r   
__future__r   __all__retypingpackaging.versionr/   compiler   __annotations__Protocolr   TypeVarr   r   r-   r   r   r   r   <module>r<      s    ( ' ' " " " " " "+ 				      -7BJ{,C,C C C C C5 5 5 5 5v 5 5 5 #FN#6>NOOO       7 7 7 7 7 7r   