code: def _collect_results(self, exp_folder_name, dataset):
      folders = get_all_folders(exp_folder_name, dataset)
      # getting all results
      sys.stderr.write(f"Retrieving results...\n")
      results = get_all_results(folders)
      if len(results) > 0:
          # calculating the mean and std
          sys.stderr.write(
              f"Calculating the mean and std of results...\n"
          )
          results = cal_mean_std(results)
          # generating md table
          sys.stderr.write(f"Generating markdown table...\n")
          gen_and_save_md_table(results, dataset)
          sys.stderr.write("\n")
      sys.stderr.write("\n")
      # move results folder
      shutil.move(
          exp_folder_name,
          exp_folder_name
          + f"_{dataset}_{datetime.now().strftime('%Y-%m-%d_%H:%M:%S')}",
      )
      shutil.move(
          "table.md",
          f"table_{dataset}_{datetime.now().strftime('%Y-%m-%d_%H:%M:%S')}.md",
      )
  
imports: import os
  import sys
  import fire
  import time
  import glob
  import yaml
  import shutil
  import signal
  import inspect
  import tempfile
  import functools
  import statistics
  import subprocess
  from datetime import datetime
  from pathlib import Path
  from operator import xor
  from pprint import pprint
  import qlib
  from qlib.workflow import R
  from qlib.tests.data import GetData
label_desc: Use image node_id 3 for calling the ModelRunner obj's underlying member method code with example usage: obj._collect_results(exp_folder_name, dataset) without return types