45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
|
"""
|
||
|
Check the numpy version is valid.
|
||
|
|
||
|
Note that a development version is marked by the presence of 'dev0' or '+'
|
||
|
in the version string, all else is treated as a release. The version string
|
||
|
itself is set from the output of ``git describe`` which relies on tags.
|
||
|
|
||
|
Examples
|
||
|
--------
|
||
|
|
||
|
Valid Development: 1.22.0.dev0 1.22.0.dev0+5-g7999db4df2 1.22.0+5-g7999db4df2
|
||
|
Valid Release: 1.21.0.rc1, 1.21.0.b1, 1.21.0
|
||
|
Invalid: 1.22.0.dev, 1.22.0.dev0-5-g7999db4dfB, 1.21.0.d1, 1.21.a
|
||
|
|
||
|
Note that a release is determined by the version string, which in turn
|
||
|
is controlled by the result of the ``git describe`` command.
|
||
|
"""
|
||
|
import re
|
||
|
|
||
|
import numpy as np
|
||
|
from numpy.testing import assert_
|
||
|
|
||
|
|
||
|
def test_valid_numpy_version():
|
||
|
# Verify that the numpy version is a valid one (no .post suffix or other
|
||
|
# nonsense). See gh-6431 for an issue caused by an invalid version.
|
||
|
version_pattern = r"^[0-9]+\.[0-9]+\.[0-9]+(a[0-9]|b[0-9]|rc[0-9]|)"
|
||
|
dev_suffix = r"(\.dev0|)(\+[0-9]*\.g[0-9a-f]+|)"
|
||
|
if np.version.release:
|
||
|
res = re.match(version_pattern + '$', np.__version__)
|
||
|
else:
|
||
|
res = re.match(version_pattern + dev_suffix + '$', np.__version__)
|
||
|
|
||
|
assert_(res is not None, np.__version__)
|
||
|
|
||
|
|
||
|
def test_short_version():
|
||
|
# Check numpy.short_version actually exists
|
||
|
if np.version.release:
|
||
|
assert_(np.__version__ == np.version.short_version,
|
||
|
"short_version mismatch in release version")
|
||
|
else:
|
||
|
assert_(np.__version__.split("+")[0] == np.version.short_version,
|
||
|
"short_version mismatch in development version")
|