class_docstr: The ensemble analyzer allows for evaluating the performance of ensembles
  across datasets.
  
  The analysis is run in parallel and should, thus, not be used in a Jupyter
  notebook. Instead, consider using the `tsbench` CLI.
docstr: TODO.
docstr_tok: ["TODO","."]
code: def get_all_performances(
      self,
      models: Dict[str, List[ModelConfig]],
      data_path: Path = DEFAULT_DATA_PATH,
  ) -> pd.DataFrame:
      """
      TODO.
      """
      results = []
      for name, dataset in tqdm(DATASET_REGISTRY.items()):
          performance = self.get_ensemble_performance(
              models[name], dataset(data_path)
          )
          df = Performance.to_dataframe([performance]).assign(
              test_dataset=name
          )
          results.append(df)
  
      return pd.concat(results).set_index("test_dataset")
  
imports: import itertools
  import math
  import random
  from pathlib import Path
  from typing import Callable, Dict, List, Optional, Tuple, Type
  import numpy
  import pandas
  from tqdm.auto import tqdm
  from tsbench.analysis.utils import loocv_split, num_fitting_processes, run_parallel
  from tsbench.config import Config, DATASET_REGISTRY, DatasetConfig, ModelConfig, TrainConfig
  from tsbench.config.model.models import SeasonalNaiveModelConfig
  from tsbench.constants import DEFAULT_DATA_PATH
  from tsbench.evaluations.metrics.performance import Metric, Performance
  from tsbench.evaluations.tracking import ModelTracker
  from tsbench.forecasts import ensemble_forecasts, EnsembleWeighting, evaluate_forecasts, Evaluation
label_desc: Use image node_id 7 for calling the EnsembleAnalyzer obj's underlying member method code with example usage: obj.get_all_performances(models, data_path) and returns: pd