Merge pull request #26715 from sebastian-philipp/script-pypy

src/script: add run_mypy to run static type checking on Python code

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
This commit is contained in:
Sebastian Wagner 2019-03-05 10:18:18 +01:00 committed by GitHub
commit e280c1a0df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 1 deletions

View File

@ -710,7 +710,7 @@ class InventoryDevice(object):
def __init__(self, blank=False, type=None, id=None, size=None, def __init__(self, blank=False, type=None, id=None, size=None,
rotates=False, available=False, dev_id=None, extended=None, rotates=False, available=False, dev_id=None, extended=None,
metadata_space_free=None): metadata_space_free=None):
# type: (bool, str, str, int, bool, bool. str, dict, bool) -> None # type: (bool, str, str, int, bool, bool, str, dict, bool) -> None
self.blank = blank self.blank = blank

37
src/script/run_mypy.sh Executable file
View File

@ -0,0 +1,37 @@
#!/usr/bin/env bash
# needs to be executed form the src directory.
# generates a report at src/mypy_report.txt
python3 -m venv venv
. venv/bin/activate
pip install $(find * -name requirements.txt | awk '{print "-r " $0}') mypy
cat <<EOF > ./mypy.ini
[mypy]
strict_optional = True
no_implicit_optional = True
ignore_missing_imports = True
warn_incomplete_stub = True
check_untyped_defs = True
show_error_context = True
EOF
echo "pybind:" > mypy_report.txt
pushd pybind
mypy --config-file=../mypy.ini *.py | awk '{print "pybind/" $0}' >> ../mypy_report.txt
popd
echo "MGR Modules:" >> mypy_report.txt
pushd pybind/mgr
mypy --config-file=../../mypy.ini $(find * -name '*.py' | grep -v -e venv -e tox -e env -e gyp -e node_modules) | awk '{print "pybind/mgr/" $0}' >> ../../mypy_report.txt
popd
echo "ceph-volume:" >> mypy_report.txt
pushd ceph-volume/ceph_volume
mypy --config-file=../../mypy.ini $(find * -name '*.py' | grep -v -e venv -e tox -e env -e gyp -e node_modules -e tests) | awk '{print "ceph-volume/ceph_volume/" $0}' >> ../../mypy_report.txt
popd