mirror of
https://github.com/cosinekitty/astronomy.git
synced 2026-06-01 12:47:35 -04:00
I added the mypy option `--disallow-untyped-defs` to fail any function lacking complete type hints. Then I fixed all the resulting errors. I ended up changing the Python code generator to create some tuple types instead of list, because it is possible to write stricter type checks that way. This was in the Pluto and Jupiter Moon tables. I still should come back and do the same thing for the VSOP tables. The type checking revealed a couple of places where I wasn't checking for a search failure. I fixed those too.
33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
Fail()
|
|
{
|
|
echo "ERROR($0): $1"
|
|
exit 1
|
|
}
|
|
|
|
[[ "$1" == "" || "$1" == "-v" ]] || Fail "Invalid command line options."
|
|
|
|
python3 --version || Fail "Cannot print python version"
|
|
|
|
echo "$0: running pylint"
|
|
python3 -m pylint --init-hook="import sys; sys.setrecursionlimit(2000)" ../source/python/astronomy/astronomy.py || Fail "pylint detected problems"
|
|
|
|
echo "$0: running mypy"
|
|
cd ../source/python/astronomy || Fail "error changing to Python source directory"
|
|
mypy --disallow-untyped-defs --module astronomy || Fail "error checking types using mypy"
|
|
cd ../../../generate || Fail "error changing back to generate directory"
|
|
echo ""
|
|
|
|
echo "$0: running unit tests"
|
|
python3 test.py $1 all || Fail "Failed Python unit tests."
|
|
for file in temp/py_longitude_*.txt; do
|
|
./generate $1 check ${file} || Fail "Failed verification of file ${file}"
|
|
done
|
|
|
|
echo "$0: Generating Python test output."
|
|
time python3 test.py astro_check > temp/py_check.txt || Fail "Failure in Python astro_check"
|
|
./generate $1 check temp/py_check.txt || Fail "Verification failure for Python unit test output."
|
|
|
|
echo "$0: PASS"
|
|
exit 0
|