-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpython_version_test.sh
More file actions
executable file
·58 lines (44 loc) · 1.95 KB
/
python_version_test.sh
File metadata and controls
executable file
·58 lines (44 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash
set -eu
function usage() {
echo "Usage: $(basename "${0}") module_bazel python_version_file pyproject_toml python_bzl"
exit 1
}
test -z "${1:-}" && usage
MODULE_BAZEL="${1}"
test -z "${2:-}" && usage
PYTHON_VERSION_FILE="${2}"
test -z "${3:-}" && usage
PYPROJECT_TOML="${3}"
test -z "${4:-}" && usage
PYTHON_BZL="${4}"
PYTHON_VERSION="$(grep '^PYTHON_VERSION = ' "${MODULE_BAZEL}" | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')"
FAIL=''
EXPECTED_VERSION_FILE_VERSION="${PYTHON_VERSION}"
ACTUAL_VERSION_FILE_VERSION="$(cat "${PYTHON_VERSION_FILE}")"
if [ "${ACTUAL_VERSION_FILE_VERSION}" != "${EXPECTED_VERSION_FILE_VERSION}" ]; then
echo "contents of .python-version must be ${EXPECTED_VERSION_FILE_VERSION}; got ${ACTUAL_VERSION_FILE_VERSION}"
FAIL='t'
fi
EXPECTED_MYPY_VERSION="$(echo "${PYTHON_VERSION}" | grep -E -o '^[0-9]+\.[0-9]+')"
ACTUAL_MYPY_VERSION="$(grep '^python_version = ' "${PYPROJECT_TOML}" | grep -E -o '[0-9]+\.[0-9]+')"
if [ "${ACTUAL_MYPY_VERSION}" != "${EXPECTED_MYPY_VERSION}" ]; then
echo "tools.mypy python_version in pyproject.toml must be ${EXPECTED_MYPY_VERSION}; got ${ACTUAL_MYPY_VERSION}"
FAIL='t'
fi
EXPECTED_RUFF_VERSION="py$(echo "${PYTHON_VERSION}" | grep -E -o '^[0-9]+\.[0-9]+' | sed 's|\.||g')"
ACTUAL_RUFF_VERSION="$(grep '^target-version = ' "${PYPROJECT_TOML}" | grep -E -o 'py[0-9]+')"
if [ "${ACTUAL_RUFF_VERSION}" != "${EXPECTED_RUFF_VERSION}" ]; then
echo "tools.ruff target-version in pyproject.toml must be ${EXPECTED_RUFF_VERSION}; got ${ACTUAL_RUFF_VERSION}"
FAIL='t'
fi
EXPECTED_PYTHON_BZL_VERSION="${PYTHON_VERSION}"
ACTUAL_PYTHON_BZL_VERSION="$(grep '^PYTHON_VERSION = ' "${PYTHON_BZL}" | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')"
if [ "${ACTUAL_PYTHON_BZL_VERSION}" != "${EXPECTED_PYTHON_BZL_VERSION}" ]; then
echo "PYTHON_VERSION in tools/python/defs.bzl must be ${EXPECTED_PYTHON_BZL_VERSION}; got ${ACTUAL_PYTHON_BZL_VERSION}"
FAIL='t'
fi
if [ -n "${FAIL}" ]; then
exit 1
fi
exit 0