a :jg÷ã@s$dZddlZdgZGdd„dƒZdS)aUtility 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@sheZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)raParse 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 cCsî||_t d|¡}|stdƒ‚| ¡|_dd„|j d¡Dƒ\|_|_|_ t |ƒ|  ¡krbd|_ nvt d||  ¡d…¡}t d||  ¡d…¡}t d ||  ¡d…¡}d d„|||fDƒ}|rÒ|d  ¡|_ nd |_ t t d |¡ƒ|_dS)Nz \d+\.\d+\.\d+z Not a valid numpy version stringcSsg|] }t|ƒ‘qS©)Úint)Ú.0Úxrrú>óz)NumpyVersion.__init__..Ú.Úfinalza\dzb\dzrc\dcSsg|]}|dur|‘qS)Nr)rÚmrrrrFr rÚz.dev)ÚvstringÚreÚmatchÚ ValueErrorÚgroupÚversionÚsplitÚmajorÚminorÚbugfixÚlenÚendÚ pre_releaseÚboolÚsearchÚ is_devversion)ÚselfrZver_mainÚalphaÚbetaÚrcZpre_relrrrÚ__init__7s$   ÿzNumpyVersion.__init__cCst|j|jkrZ|j|jkrB|j|jkr*d}qX|j|jkrs