GigaCheck / bootstrap.py
iitolstykh's picture
update requirements
e7ca840
Raw
History Blame Contribute Delete
1.15 kB
"""Runtime installation of the gigacheck package without its pinned deps.
gigacheck pins ``torch==2.3.1`` in its ``install_requires``, which conflicts
with the ``torch==2.8.0`` this demo needs. Installing gigacheck with
``--no-deps`` lets pip skip that pin entirely; the inference path only needs
``numpy``, ``scipy``, ``dacite`` and ``omegaconf`` on top of torch/transformers,
which are declared in ``requirements.txt`` and installed normally.
"""
from __future__ import annotations
import importlib.util
import subprocess
import sys
from loguru import logger
GIGACHECK_SPEC = "git+https://github.com/ai-forever/gigacheck"
def ensure_gigacheck() -> None:
"""Install the gigacheck package on first run, skipping its pinned deps.
No-op when gigacheck is already importable (e.g. installed in the image),
so repeated app restarts do not reinstall it.
"""
if importlib.util.find_spec("gigacheck") is not None:
return
logger.info("Installing gigacheck with --no-deps from {}", GIGACHECK_SPEC)
subprocess.run(
[sys.executable, "-m", "pip", "install", "--no-deps", GIGACHECK_SPEC],
check=True,
)