Check typing of python scripts if mypy is available

Signed-off-by: Gilles Peskine <[email protected]>
This commit is contained in:
Gilles Peskine
2020-12-10 21:32:32 +01:00
parent e6d0ac26ca
commit 7be4551f23
+21 -6
View File
@@ -14,11 +14,13 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
#
# Purpose: # Purpose: check Python files for potential programming errors or maintenance
# # hurdles. Run pylint to detect some potential mistakes and enforce PEP8
# Run 'pylint' on Python files for programming errors and helps enforcing # coding standards. If available, run mypy to perform static type checking.
# PEP8 coding standards.
# We'll keep going on errors and report the status at the end.
ret=0
if type python3 >/dev/null 2>/dev/null; then if type python3 >/dev/null 2>/dev/null; then
PYTHON=python3 PYTHON=python3
@@ -26,4 +28,17 @@ else
PYTHON=python PYTHON=python
fi fi
$PYTHON -m pylint -j 2 scripts/*.py tests/scripts/*.py $PYTHON -m pylint -j 2 scripts/*.py tests/scripts/*.py || {
echo >&2 "pylint reported errors"
ret=1
}
# Check types if mypy is available
if type mypy >/dev/null 2>/dev/null; then
echo
echo 'Running mypy ...'
mypy scripts/*.py tests/scripts/*.py ||
ret=1
fi
exit $ret