#!/bin/sh # Writes src/clip-keyword-vectors.ts and test/clip-keywords-sunset.json by # running bin/clip-keyword-vectors.py in a Python image pinned by digest, with # its packages pinned by hash. Run it by hand from a checkout, then `make fmt`; # no gate runs it. It downloads about 215 MB, most of it Ente's two CLIP models. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" # python:3.13-slim (Python 3.13.17 on Debian 13.7), 2026-10-21. The wheels # below are the ones for this image on linux/amd64. IMAGE=python@sha256:57b29a7c050c4e679e4bea572e14b3965cf4b5839de2da49d55e49ffc4024f39 main() { cd "$ROOT" docker run --rm -i --platform linux/amd64 \ --user "$(id -u):$(id -g)" -e HOME=/tmp \ -v "$ROOT:/repo" -w /repo "$IMAGE" sh -c ' python -m venv /tmp/venv && /tmp/venv/bin/pip install --quiet --disable-pip-version-check \ --no-cache-dir --no-deps --require-hashes -r /dev/stdin && /tmp/venv/bin/python bin/clip-keyword-vectors.py' <<'EOF' numpy==2.5.3 --hash=sha256:a5fa86b80fd24bcd1aff83ad23be44ea323de3f787be8f8b15d4a65621e25321 onnxruntime==1.30.0 --hash=sha256:86f940afc801ea9681a4da8af84fbe95e1d9ea7d80903952cc1bfad54faad38f pillow==12.3.0 --hash=sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3 tokenizers==0.23.2 --hash=sha256:41c2f84d172449b4dadb9cdc508e3e364076613c35b16e76ecfe47a60d1e3305 EOF } main "$@"