Source code for itwinai.tests.sanity_check

# --------------------------------------------------------------------------------------
# Part of the interTwin Project: https://www.intertwin.eu/
#
# Created by: Matteo Bunino
#
# Credit:
# - Matteo Bunino <matteo.bunino@cern.ch> - CERN
# - Anna Lappe <anna.elisa.lappe@cern.ch> - CERN
# - Linus Eickhoff <linus.maximilian.eickhoff@cern.ch> - CERN
# --------------------------------------------------------------------------------------

import importlib
from typing import List

from .exceptions import SanityCheckError

core_modules = [
    "itwinai",
    "itwinai.cli",
    "itwinai.components",
    "itwinai.constants",
    "itwinai.distributed",
    "itwinai.loggers",
    "itwinai.parser",
    "itwinai.pipeline",
    "itwinai.plugins",
    "itwinai.scalability_report",
    "itwinai.scalability_report.data",
    "itwinai.scalability_report.plot",
    "itwinai.scalability_report.reports",
    "itwinai.scalability_report.utils",
    "itwinai.serialization",
    "itwinai.slurm",
    "itwinai.slurm.configuration",
    "itwinai.slurm.constants",
    "itwinai.slurm.script_builder",
    "itwinai.slurm.utils",
    "itwinai.tests",
    "itwinai.tests.dummy_components",
    "itwinai.tests.exceptions",
    "itwinai.tests.sanity_check",
    "itwinai.type",
    "itwinai.utils",
]

torch_modules = [
    "itwinai.torch",
    "itwinai.torch.config",
    "itwinai.torch.data",
    "itwinai.torch.distributed",
    "itwinai.torch.gan",
    "itwinai.torch.inference",
    "itwinai.torch.loggers",
    "itwinai.torch.mlflow",
    "itwinai.torch.models",
    "itwinai.torch.models.mnist",
    "itwinai.torch.monitoring.backend",
    "itwinai.torch.monitoring.monitoring",
    "itwinai.torch.profiling.profiler",
    "itwinai.torch.profiling.py_spy_aggregation",
    "itwinai.torch.reproducibility",
    "itwinai.torch.trainer",
    "itwinai.torch.tuning",
    "itwinai.torch.type",
    "itwinai.torch.utils",
]

tensorflow_modules = [
    "itwinai.tensorflow",
    "itwinai.tensorflow.data",
    "itwinai.tensorflow.distributed",
    "itwinai.tensorflow.models",
    "itwinai.tensorflow.models.mnist",
    "itwinai.tensorflow.trainer",
    "itwinai.tensorflow.utils",
]


[docs] def run_sanity_check(modules: List[str]): """Run sanity checks by trying to import modules. Args: modules (List[str]): list of modules Raises: SanityCheckError: when some module cannot be imported. """ failed_imports = [] for module in modules: try: importlib.import_module(module) print(f"✅ Successfully imported: {module}") except ImportError as e: failed_imports.append((module, str(e))) print(f"❌ Failed to import: {module} - {e}") if failed_imports: err_msg = "\nSummary of failed imports:\n" for module, error in failed_imports: err_msg += f"Module: {module}, Error: {error}\n" raise SanityCheckError( "Not all itwinai modules could be successfully imported!\n" + err_msg ) else: print("\nAll modules imported successfully!")
[docs] def sanity_check_slim(): """Run sanity check on the installation of core modules of itwinai (neither itwinai.torch, nor itwinai.tensorflow).""" run_sanity_check(modules=core_modules)
[docs] def sanity_check_torch(): """Run sanity check on the installation of itwinai for a torch environment.""" run_sanity_check(modules=core_modules + torch_modules)
[docs] def sanity_check_tensorflow(): """Run sanity check on the installation of itwinai for a tensorflow environment.""" run_sanity_check(modules=core_modules + tensorflow_modules)
[docs] def sanity_check_all(): """Run all sanity checks.""" run_sanity_check(modules=core_modules + torch_modules + tensorflow_modules)