Source code for quantify_scheduler.compatibility_check
# Repository: https://gitlab.com/quantify-os/quantify-scheduler
# Licensed according to the LICENCE file on the main branch
"""Contains methods to check compatibility with optional installs."""
import importlib
import sys
[docs]
def check_zhinst_compatibility() -> None:
    """
    Check if the zhinst backend can be safely used.
    Raises
    ------
    RuntimeError
        When running an incompatible python version.
    ModuleNotFoundError
        When the zhinst backend is not installed.
    """
    version = sys.version_info
    major, minor = version.major, version.minor
    if version >= (3, 10):
        raise RuntimeError(
            "The zhinst backend is only compatible with Python 3.8 and Python 3.9, "
            f"but you have Python {major}.{minor}. Please install a compatible python version."
        )
    if importlib.util.find_spec("zhinst") is None:  # type: ignore[attr-defined]
        raise ModuleNotFoundError(
            "The zhinst backend could not be found. "
            "Please install the zhinst backend via `pip install quantify-scheduler[zhinst]`."
        )