code: def main(config: ProfetExperimentConfig):
      if issubclass(config.task_type, ProfetTask):
          task = config.task_type(
              max_trials=config.max_trials,
              task_id=0,
              model_config=config.profet_train_config,
              input_dir=config.input_dir,
              checkpoint_dir=config.checkpoint_dir,
              seed=config.seed,
          )
      else:
          # NOTE: This doesn't normally happen when using this from the command-line.
          task = config.task_type(max_trials=config.max_trials)
  
      print(f"Storage file used: {config.storage_pickle_path}")
  
      storage = setup_storage(
          {
              "type": "legacy",
              "database": {
                  "type": "pickleddb",
                  "host": str(config.storage_pickle_path),
              },
          }
      )
  
      benchmark = get_or_create_benchmark(
          storage,
          name=config.name,
          algorithms=config.algorithms,
          targets=[
              {
                  "assess": [AverageResult(config.n_repetitions)],
                  "task": [
                      task,
                  ],
              }
          ],
          debug=config.debug,
      )
      benchmark.setup_studies()
  
      # Since we're using the QuadraticsTask, we can evaluate the 'similarity' between
      # them, hence we just show these figures rather than the (very large) number of other
      # potential figures.
      figures_dir = config.figures_dir / benchmark.name
      figures_dir.mkdir(exist_ok=True, parents=True)
  
      benchmark.process(n_workers=1)
  
      status = benchmark.status(False)
      print(status)
      # if all(isinstance(source_task, QuadraticsTask) for source_task in benchmark.source_tasks):
      figures = benchmark.analysis()
      # # # TODO: Instead of having like 30 figures, should try and create an interactive-ish
      # # # plotly thingy that can switch between the different quantities.
      # import plotly.io as pio
      # pio.renderers.default = "browser"
      for i, figure in enumerate(figures):
          figure.show()
          figure.write_image(str(figures_dir / f"fig_{i:02}.svg"))
          figure.write_image(str(figures_dir / f"fig_{i:02}.png"))
          figure.write_html(
              str(figures_dir / f"fig_{i:02}.html"),
              include_plotlyjs="cdn",
          )
  
file_path: orion/examples/benchmark/profet_benchmark.py
imports: import logging
  from dataclasses import dataclass
  from logging import getLogger
  from pathlib import Path
  from typing import List, Type
  from orion.algo.base import algo_factory
  from orion.benchmark.assessment import AverageResult
  from orion.benchmark.benchmark_client import get_or_create_benchmark
  from orion.benchmark.task.base import BenchmarkTask
  from orion.benchmark.task.profet import ProfetFcNetTask, ProfetForresterTask, ProfetSvmTask, ProfetXgBoostTask
  from orion.benchmark.task.profet.profet_task import MetaModelConfig, ProfetTask
  from orion.storage.base import setup_storage
label_desc: Use image node_id 1 for calling a global function with example usage: main(config) without return types