class_docstr: Selects the right wrapper (based on the environment), runs, and saves the src.
docstr: Fill data with keys based on computer name, tasks, and selected version.
docstr_tok: ["Fill","data","with","keys","based","on","computer","name",",","tasks",",","and","selected","version","."]
code: def _fill_keys(self) -> None:
      """Fill data with keys based on computer name, tasks, and selected version."""
      print("Filling keys...")
      if self._computer not in self._data:
          self._data[self._computer] = {}
  
      for task in TASKS:
          if task.id not in self._data[self._computer]:
              self._data[self._computer][task.id] = {}
  
          if "name" not in self._data[self._computer][task.id]:
              self._data[self._computer][task.id]["name"] = task.name
  
          if "objective" not in self._data[self._computer][task.id]:
              self._data[self._computer][task.id][
                  "objective"
              ] = task.objectives[0]
  
          if (
              "trajectory_trials"
              not in self._data[self._computer][task.id]
          ):
              self._data[self._computer][task.id][
                  "trajectory_trials"
              ] = {}
  
          if (
              "trajectory_walltime"
              not in self._data[self._computer][task.id]
          ):
              self._data[self._computer][task.id][
                  "trajectory_walltime"
              ] = {}
  
          if (
              self._version
              not in self._data[self._computer][task.id][
                  "trajectory_trials"
              ]
          ):
              self._data[self._computer][task.id]["trajectory_trials"][
                  self._version
              ] = {}
  
          if (
              self._version
              not in self._data[self._computer][task.id][
                  "trajectory_walltime"
              ]
          ):
              self._data[self._computer][task.id][
                  "trajectory_walltime"
              ][self._version] = {}
  
      self._save_data()
  
imports: from __future__ import annotations
  import sys
  import logging
  from typing import Any
  import numpy
  import json
  import socket
  from collections import defaultdict
  from pathlib import Path
  import pandas
  from src.tasks import TASKS
  from src.utils.exceptions import NotSupportedError
  from src.utils.styled_plot import plt
  from src.wrappers.v14 import Version14
  from src.wrappers.v20 import Version20
  from src.wrappers.wrapper import Wrapper
label_desc: Use image node_id 4 for calling the Benchmark obj's underlying member method code with example usage: obj._fill_keys() without return types