code: def _print_trainings_long(trainings: Iterable[Tuple[str, dict, TrainingTrace]]) -> None:
      
      long_table = []
      for train_dir, config, trace in trainings:
          start_datetime, end_datetime = trace[TrainingTraceKeys.TRAIN_BEGIN], trace[TrainingTraceKeys.TRAIN_END]
          if start_datetime:
              age = format_timedelta(datetime.now() - start_datetime) + ' ago'
              if end_datetime:
                  duration = format_timedelta(end_datetime - start_datetime)
              else:
                  duration = CXF_NA_STR
          else:
              age = CXF_NA_STR
              duration = CXF_NA_STR
  
          epochs_done = trace[TrainingTraceKeys.EPOCHS_DONE] if trace[TrainingTraceKeys.EPOCHS_DONE] else 0
  
          long_table.append([path.basename(train_dir)] +
                            list(map(lambda fq_name: fq_name.split('.')[-1], get_classes(config))) +
                            [age, duration, epochs_done])
  
      print(tabulate(long_table, tablefmt='plain'))
docs: Print a plain table with the details of the given trainings.
  
      :param trainings: iterable of tuples (train_dir, configuration dict, trace)