#!/usr/bin/env bash set -ex cd "$(dirname "$0")/.." # Remove mypy-dev from requirements_test.txt since the maintainer deletes old versions from PyPI. # We'll install the latest version separately below. # See: https://github.com/cdce8p/mypy-dev/issues/62 grep -v '^mypy-dev' core/requirements_test.txt > core/requirements_test.txt.tmp && mv core/requirements_test.txt.tmp core/requirements_test.txt uv pip install -r core/requirements.txt uv pip install -r core/requirements_test.txt # HA 2026.4+ imports aiohasupervisor from tests/components/conftest.py # but pins it in requirements_test_all.txt instead of requirements_test.txt. # HA 2026.8+ removed requirements_test_all.txt (home-assistant/core#171530); # the pin lives in requirements_all.txt there. aiohasupervisor_req="" if [[ -f core/requirements_test_all.txt ]]; then aiohasupervisor_req="$(grep -m1 '^aiohasupervisor' core/requirements_test_all.txt || true)" elif [[ -f core/requirements_all.txt ]]; then aiohasupervisor_req="$(grep -m1 '^aiohasupervisor' core/requirements_all.txt || true)" fi if [[ -n "${aiohasupervisor_req}" ]]; then uv pip install "${aiohasupervisor_req}" fi # HA 2026.4+ validates service translations through translations/en.json. # The core checkout keeps English source strings in strings.json, so seed en.json # in the temporary CI checkout before tests load integrations. for strings_file in core/homeassistant/components/*/strings.json; do [[ -f "${strings_file}" ]] || continue translations_dir="$(dirname "${strings_file}")/translations" en_translation="${translations_dir}/en.json" if [[ ! -f "${en_translation}" ]]; then mkdir -p "${translations_dir}" cp "${strings_file}" "${en_translation}" fi done uv pip install -e core/ uv pip install ulid-transform # this is in Adaptive-lighting's manifest.json uv pip install $(python3 test_dependencies.py) # Install the latest mypy-dev (not pinned since old versions get deleted from PyPI) uv pip install --upgrade mypy-dev # Workaround for aiodns/pycares compatibility issue # See: https://github.com/aio-libs/aiodns/issues/214 uv pip install --upgrade aiodns