#!/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 ./venv/bin/pip install mypy trio-typing[mypy] types-PyYAML types-aiofiles types-colorama types-cryptography types-protobuf types-toml 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 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 ./venv/bin/mypy --install-types src