]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
src/script: add run_mypy to run static type checking on Python code
authorSebastian Wagner <sebastian.wagner@suse.com>
Fri, 1 Mar 2019 10:59:39 +0000 (11:59 +0100)
committerSebastian Wagner <sebastian.wagner@suse.com>
Mon, 4 Mar 2019 13:35:00 +0000 (14:35 +0100)
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
src/pybind/mgr/orchestrator.py
src/script/run_mypy.sh [new file with mode: 0755]

index 598181b501e796e096d77445eb2dde0dd9920bae..ae215f968fe3218ca60094a9a5b7766e4c06bf69 100644 (file)
@@ -710,7 +710,7 @@ class InventoryDevice(object):
     def __init__(self, blank=False, type=None, id=None, size=None,
                  rotates=False, available=False, dev_id=None, extended=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
 
diff --git a/src/script/run_mypy.sh b/src/script/run_mypy.sh
new file mode 100755 (executable)
index 0000000..3d13532
--- /dev/null
@@ -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
+