o
    "ì¤gö  ã                   @   s$   d Z ddlZdgZG dd„ dƒZdS )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                   @   sl   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )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                 C   sî   || _ t d|¡}|stdƒ‚| ¡ | _dd„ | j d¡D ƒ\| _| _| _	t
|ƒ| ¡ kr1d| _n;t d|| ¡ d … ¡}t d|| ¡ d … ¡}t d	|| ¡ d … ¡}d
d„ |||fD ƒ}|ri|d  ¡ | _nd| _tt d|¡ƒ| _d S )Nz\d+\.\d+\.\d+z Not a valid numpy version stringc                 S   s   g | ]}t |ƒ‘qS © )Úint)Ú.0Úxr   r   úT/var/www/html/ecg_monitoring/venv/lib/python3.10/site-packages/numpy/lib/_version.pyÚ
<listcomp>>   s    z)NumpyVersion.__init__.<locals>.<listcomp>Ú.Úfinalza\dzb\dzrc\dc                 S   s   g | ]}|d ur|‘qS )Nr   )r   Úmr   r   r   r   F   s    r   Ú z.dev)ÚvstringÚreÚmatchÚ
ValueErrorÚgroupÚversionÚsplitÚmajorÚminorÚbugfixÚlenÚendÚpre_releaseÚboolÚsearchÚis_devversion)Úselfr   Úver_mainÚalphaÚbetaÚrcÚpre_relr   r   r   Ú__init__7   s$   

ÿzNumpyVersion.__init__c                 C   s€   | j |j kr2| j|jkr$| j|jkrd}|S | j|jkr d}|S d}|S | j|jkr.d}|S d}|S | j |j kr<d}|S d}|S )zCompare major.minor.bugfixr   é   éÿÿÿÿ)r   r   r   ©r   ÚotherÚvercmpr   r   r   Ú_compare_versionN   s(   óö
÷úûþzNumpyVersion._compare_versionc                 C   sT   | j |j kr
d}|S | j dkrd}|S |j dkrd}|S | j |j kr&d}|S d}|S )zCompare alpha/beta/rc/final.r   r
   r$   r%   )r   r&   r   r   r   Ú_compare_pre_releasec   s   

÷
ùûþz!NumpyVersion._compare_pre_releasec                 C   sv   t |ttfƒstdƒ‚t |tƒrt|ƒ}|  |¡}|dkr9|  |¡}|dkr9| j|ju r0d}|S | jr7d}|S d}|S )Nz,Invalid object to compare with NumpyVersion.r   r%   r$   )Ú
isinstanceÚstrr   r   r)   r*   r   r&   r   r   r   Ú_comparer   s    


ûþzNumpyVersion._comparec                 C   s   |   |¡dk S ©Nr   ©r-   ©r   r'   r   r   r   Ú__lt__ˆ   ó   zNumpyVersion.__lt__c                 C   s   |   |¡dkS r.   r/   r0   r   r   r   Ú__le__‹   r2   zNumpyVersion.__le__c                 C   s   |   |¡dkS r.   r/   r0   r   r   r   Ú__eq__Ž   r2   zNumpyVersion.__eq__c                 C   s   |   |¡dkS r.   r/   r0   r   r   r   Ú__ne__‘   r2   zNumpyVersion.__ne__c                 C   s   |   |¡dkS r.   r/   r0   r   r   r   Ú__gt__”   r2   zNumpyVersion.__gt__c                 C   s   |   |¡dkS r.   r/   r0   r   r   r   Ú__ge__—   r2   zNumpyVersion.__ge__c                 C   s
   d| j  S )NzNumpyVersion(%s))r   )r   r   r   r   Ú__repr__š   s   
zNumpyVersion.__repr__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r)   r*   r-   r1   r3   r4   r5   r6   r7   r8   r   r   r   r   r      s    &)r<   r   Ú__all__r   r   r   r   r   Ú<module>   s    