$36 GRAYBYTE WORDPRESS FILE MANAGER $54

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/lib/

HOME
Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/lib//_version.py
"""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.

"""
import re


__all__ = ['NumpyVersion']


class NumpyVersion():
    """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.

    .. versionadded:: 1.9.0

    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

    """

    def __init__(self, vstring):
        self.vstring = vstring
        ver_main = re.match(r'\d+\.\d+\.\d+', vstring)
        if not ver_main:
            raise ValueError("Not a valid numpy version string")

        self.version = ver_main.group()
        self.major, self.minor, self.bugfix = [int(x) for x in
            self.version.split('.')]
        if len(vstring) == ver_main.end():
            self.pre_release = 'final'
        else:
            alpha = re.match(r'a\d', vstring[ver_main.end():])
            beta = re.match(r'b\d', vstring[ver_main.end():])
            rc = re.match(r'rc\d', vstring[ver_main.end():])
            pre_rel = [m for m in [alpha, beta, rc] if m is not None]
            if pre_rel:
                self.pre_release = pre_rel[0].group()
            else:
                self.pre_release = ''

        self.is_devversion = bool(re.search(r'.dev', vstring))

    def _compare_version(self, other):
        """Compare major.minor.bugfix"""
        if self.major == other.major:
            if self.minor == other.minor:
                if self.bugfix == other.bugfix:
                    vercmp = 0
                elif self.bugfix > other.bugfix:
                    vercmp = 1
                else:
                    vercmp = -1
            elif self.minor > other.minor:
                vercmp = 1
            else:
                vercmp = -1
        elif self.major > other.major:
            vercmp = 1
        else:
            vercmp = -1

        return vercmp

    def _compare_pre_release(self, other):
        """Compare alpha/beta/rc/final."""
        if self.pre_release == other.pre_release:
            vercmp = 0
        elif self.pre_release == 'final':
            vercmp = 1
        elif other.pre_release == 'final':
            vercmp = -1
        elif self.pre_release > other.pre_release:
            vercmp = 1
        else:
            vercmp = -1

        return vercmp

    def _compare(self, other):
        if not isinstance(other, (str, NumpyVersion)):
            raise ValueError("Invalid object to compare with NumpyVersion.")

        if isinstance(other, str):
            other = NumpyVersion(other)

        vercmp = self._compare_version(other)
        if vercmp == 0:
            # Same x.y.z version, check for alpha/beta/rc
            vercmp = self._compare_pre_release(other)
            if vercmp == 0:
                # Same version and same pre-release, check if dev version
                if self.is_devversion is other.is_devversion:
                    vercmp = 0
                elif self.is_devversion:
                    vercmp = -1
                else:
                    vercmp = 1

        return vercmp

    def __lt__(self, other):
        return self._compare(other) < 0

    def __le__(self, other):
        return self._compare(other) <= 0

    def __eq__(self, other):
        return self._compare(other) == 0

    def __ne__(self, other):
        return self._compare(other) != 0

    def __gt__(self, other):
        return self._compare(other) > 0

    def __ge__(self, other):
        return self._compare(other) >= 0

    def __repr__(self):
        return "NumpyVersion(%s)" % self.vstring

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
1 Jan 1970 8.00 AM
root / root
0
__pycache__
--
14 Aug 2025 9.25 PM
root / root
0755
tests
--
14 Aug 2025 9.24 PM
root / root
0755
__init__.py
2.698 KB
17 Apr 2025 8.10 PM
root / root
0644
__init__.pyi
5.465 KB
17 Apr 2025 8.10 PM
root / root
0644
_datasource.py
22.101 KB
17 Apr 2025 8.10 PM
root / root
0644
_iotools.py
30.145 KB
17 Apr 2025 8.10 PM
root / root
0644
_version.py
4.741 KB
17 Apr 2025 8.10 PM
root / root
0644
_version.pyi
0.618 KB
17 Apr 2025 8.10 PM
root / root
0644
arraypad.py
31.058 KB
17 Apr 2025 8.10 PM
root / root
0644
arraypad.pyi
1.688 KB
17 Apr 2025 8.10 PM
root / root
0644
arraysetops.py
32.866 KB
17 Apr 2025 8.10 PM
root / root
0644
arraysetops.pyi
8.142 KB
17 Apr 2025 8.10 PM
root / root
0644
arrayterator.py
6.897 KB
17 Apr 2025 8.10 PM
root / root
0644
arrayterator.pyi
1.501 KB
17 Apr 2025 8.10 PM
root / root
0644
format.py
33.954 KB
17 Apr 2025 8.10 PM
root / root
0644
format.pyi
0.73 KB
17 Apr 2025 8.10 PM
root / root
0644
function_base.py
184.671 KB
17 Apr 2025 8.10 PM
root / root
0644
function_base.pyi
16.196 KB
17 Apr 2025 8.10 PM
root / root
0644
histograms.py
36.813 KB
17 Apr 2025 8.10 PM
root / root
0644
histograms.pyi
0.972 KB
17 Apr 2025 8.10 PM
root / root
0644
index_tricks.py
30.611 KB
17 Apr 2025 8.10 PM
root / root
0644
index_tricks.pyi
4.151 KB
17 Apr 2025 8.10 PM
root / root
0644
mixins.py
6.905 KB
17 Apr 2025 8.10 PM
root / root
0644
mixins.pyi
3.044 KB
17 Apr 2025 8.10 PM
root / root
0644
nanfunctions.py
64.233 KB
17 Apr 2025 8.10 PM
root / root
0644
nanfunctions.pyi
0.592 KB
17 Apr 2025 8.10 PM
root / root
0644
npyio.py
95.035 KB
17 Apr 2025 8.10 PM
root / root
0644
npyio.pyi
9.5 KB
17 Apr 2025 8.10 PM
root / root
0644
polynomial.py
43.099 KB
17 Apr 2025 8.10 PM
root / root
0644
polynomial.pyi
6.795 KB
17 Apr 2025 8.10 PM
root / root
0644
recfunctions.py
58.03 KB
17 Apr 2025 8.10 PM
root / root
0644
scimath.py
14.685 KB
17 Apr 2025 8.10 PM
root / root
0644
scimath.pyi
2.815 KB
17 Apr 2025 8.10 PM
root / root
0644
setup.py
0.396 KB
17 Apr 2025 8.10 PM
root / root
0644
shape_base.py
38.034 KB
17 Apr 2025 8.10 PM
root / root
0644
shape_base.pyi
5.063 KB
17 Apr 2025 8.10 PM
root / root
0644
stride_tricks.py
17.491 KB
17 Apr 2025 8.10 PM
root / root
0644
stride_tricks.pyi
1.706 KB
17 Apr 2025 8.10 PM
root / root
0644
twodim_base.py
32.175 KB
17 Apr 2025 8.10 PM
root / root
0644
twodim_base.pyi
5.244 KB
17 Apr 2025 8.10 PM
root / root
0644
type_check.py
19.486 KB
17 Apr 2025 8.10 PM
root / root
0644
type_check.pyi
5.44 KB
17 Apr 2025 8.10 PM
root / root
0644
ufunclike.py
6.177 KB
17 Apr 2025 8.10 PM
root / root
0644
ufunclike.pyi
1.263 KB
17 Apr 2025 8.10 PM
root / root
0644
user_array.py
7.54 KB
17 Apr 2025 8.10 PM
root / root
0644
utils.py
36.918 KB
17 Apr 2025 8.10 PM
root / root
0644
utils.pyi
2.305 KB
17 Apr 2025 8.10 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF