+
    ei  c                   s,    R t ^ RItR.t ! R R4      tR# )a  Utility to compare (NumPy) version strings.

The NumpyVersion class allows properly comparing numpy version strings.
The LooseVersion and StrictVersion classes that distutils provides don't
work; they don't recognize anything like alpha/beta/rc/dev versions.

NNumpyVersionc                   sj   a  ] tR t^t o RtRtR tR tR tR tR t	R t
R	 tR
 tR tR tR tRtV tR# )r    a  Parse and compare numpy version strings.

NumPy has the following versioning scheme (numbers given are examples; they
can be > 9 in principle):

- Released version: '1.8.0', '1.8.1', etc.
- Alpha: '1.8.0a1', '1.8.0a2', etc.
- Beta: '1.8.0b1', '1.8.0b2', etc.
- Release candidates: '1.8.0rc1', '1.8.0rc2', etc.
- Development versions: '1.8.0.dev-f1234afa' (git commit hash appended)
- Development versions after a1: '1.8.0a1.dev-f1234afa',
                                 '1.8.0b2.dev-f1234afa',
                                 '1.8.1rc1.dev-f1234afa', etc.
- Development versions (no git hash available): '1.8.0.dev-Unknown'

Comparing needs to be done against a valid version string or other
`NumpyVersion` instance. Note that all development versions of the same
(pre-)release compare equal.

Parameters
----------
vstring : str
    NumPy version string (``np.__version__``).

Examples
--------
>>> from numpy.lib import NumpyVersion
>>> if NumpyVersion(np.__version__) < '1.7.0':
...     print('skip')
>>> # skip

>>> NumpyVersion('1.7')  # raises ValueError, add ".0"
Traceback (most recent call last):
    ...
ValueError: Not a valid numpy version string

z	numpy.libc                s:   Wn         \        P                  ! R V4      pV'       g   \        R4      hVP	                  4       V n        V P
                  P                  R4       Uu. uF  p\        V4      NK  	  upw  V n        V n	        V n
        \        V4      VP                  4       8X  d	   RV n        M\        P                  ! RWP                  4       R 4      p\        P                  ! RWP                  4       R 4      p\        P                  ! RWP                  4       R 4      pWEV3 Uu. uF
  qwf   K  VNK  	  ppV'       d   V^ ,          P	                  4       V n        MRV n        \        \        P                  ! R	V4      4      V n        R# u upi u upi )
z\d+\.\d+\.\d+z Not a valid numpy version stringZ.finalza\dNzb\dzrc\dZ z.dev)vstringreZmatch
ValueErrorZgroupversionZsplitZintmajorminorbugfixZlenZendpre_releaseZboolZsearchis_devversion)	selfr   Zver_mainZxZalphaZbetaZrcZmZpre_rels	   &&       9/usr/lib64/python3.14/site-packages/numpy/lib/_version.py__init__ZNumpyVersion.__init__6   s=   88,g6?@@~~'LLs#/%# ;<s1v#/%+
DJw<8<<>)&DHHVW\\^_%=>E88FGLLNO$<=D'7<<>?#;<B#("3E"3Qqq"3GE#*1:#3#3#5 #% !"))GW"=>/% Fs   #F.F8Fc                s   V P                   VP                   8X  d   V P                  VP                  8X  dD   V P                  VP                  8X  d   ^ pV# V P                  VP                  8  d   ^pV# Rp V# V P                  VP                  8  d   ^pV# Rp V# V P                   VP                   8  d   ^pV# RpV# )zCompare major.minor.bugfix)r   r   r   r   otherZvercmp   && r   _compare_versionZNumpyVersion._compare_versionM   s    ::$zzU[[(;;%,,.F  [[5<</F   F  ekk)    ZZ%++%F  F    c                s    V P                   VP                   8X  d   ^ pV# V P                   R8X  d   ^pV# VP                   R8X  d   RpV# V P                   VP                   8  d   ^pV# RpV# )zCompare alpha/beta/rc/final.r   r   )r	   r   r   r   _compare_pre_releaseZ!NumpyVersion._compare_pre_releaseb   s    u000F  (F  ')F   1 11F  Fr   c                sb   \        V\        \        34      '       g   \        R 4      h\        V\        4      '       d   \        V4      pV P	                  V4      pV^ 8X  dO   V P                  V4      pV^ 8X  d7   V P                  VP                  J d   ^ pV# V P                  '       d   RpV# ^pV# )z,Invalid object to compare with NumpyVersion.r   )Z
isinstanceZstrr    r   r   r   r
   r   r   r   _compareZNumpyVersion._compareq   s    %#|!455KLLeS!! 'E&&u-Q;..u5F{%%)<)<<F  '''F  Fr   c                s*    V P                  V4      ^ 8  # i    r   r   r      &&r   __lt__ZNumpyVersion.__lt__       }}U#a''r   c                s*    V P                  V4      ^ 8*  # r   r   r   r   r   __le__ZNumpyVersion.__le__       }}U#q((r   c                s*    V P                  V4      ^ 8H  # r   r   r   r   r   __eq__ZNumpyVersion.__eq__   r   r   c                s*    V P                  V4      ^ 8g  # r   r   r   r   r   __ne__ZNumpyVersion.__ne__   r   r   c                s*    V P                  V4      ^ 8  # r   r   r   r   r   __gt__ZNumpyVersion.__gt__   r   r   c                s*    V P                  V4      ^ 8  # r   r   r   r   r   __ge__ZNumpyVersion.__ge__   r   r   c                s"    R V P                    R2# )zNumpyVersion(Z))r   )r   s   &r   __repr__ZNumpyVersion.__repr__   s    t||nA..r   )r   r
   r   r   r	   r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__r   r   r   r   r   r   r   r   r    r!   r"   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r    r       sN     $L J?.*,()))()/ /r   )r#   r   Z__all__r    ) r   r   <module>r$      s#    

M/ M/r   