2022-04-04 19:21:51 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
### check type annotations with mypy
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
base=$(dirname "$(readlink -f "$0")")
|
|
|
|
cd "${base}"
|
|
|
|
|
|
|
|
if [ ! -d "venv" -o ! -x "venv/bin/python" ]; then
|
|
|
|
echo >&2 "Missing virtualenv in 'venv'; maybe run setup-venv.sh first!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -x ./venv/bin/mypy ]; then
|
2023-01-12 13:16:51 +01:00
|
|
|
./venv/bin/pip install mypy trio-typing[mypy] types-PyYAML types-aiofiles types-colorama types-cryptography types-protobuf types-toml
|
2022-04-04 19:21:51 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
site_pkgs=$(./venv/bin/python -c 'import site; print(site.getsitepackages()[0])')
|
|
|
|
if [ ! -d "${site_pkgs}/trio_typing" ]; then
|
|
|
|
./venv/bin/pip install trio-typing[mypy]
|
|
|
|
fi
|
2023-01-12 13:16:51 +01:00
|
|
|
if [ ! -d "${site_pkgs}/yaml-stubs" ]; then
|
|
|
|
./venv/bin/pip install types-PyYAML
|
|
|
|
fi
|
|
|
|
if [ ! -d "${site_pkgs}/aiofiles-stubs" ]; then
|
|
|
|
./venv/bin/pip install types-aiofiles
|
|
|
|
fi
|
|
|
|
if [ ! -d "${site_pkgs}/colorama-stubs" ]; then
|
|
|
|
./venv/bin/pip install types-colorama
|
|
|
|
fi
|
|
|
|
if [ ! -d "${site_pkgs}/cryptography-stubs" ]; then
|
|
|
|
./venv/bin/pip install types-cryptography
|
|
|
|
fi
|
|
|
|
if [ ! -d "${site_pkgs}/google-stubs" ]; then
|
|
|
|
./venv/bin/pip install types-protobuf
|
|
|
|
fi
|
|
|
|
if [ ! -d "${site_pkgs}/toml-stubs" ]; then
|
|
|
|
./venv/bin/pip install types-toml
|
|
|
|
fi
|
2022-04-04 19:21:51 +02:00
|
|
|
|
|
|
|
./venv/bin/mypy --install-types src
|