summaryrefslogtreecommitdiffstats
path: root/src/script/run_mypy.sh
blob: 3d13532891b8bde88f804270e6e01137be3f9a1b (plain)
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
#!/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