docs: def sget_steptime(self, cycle, step, dataset_number=None):
          """Returns step time for cycle, step.
  
          Convinience function; same as issuing
             dfdata[(dfdata[cycle_index_header] == cycle) &
                   (dfdata[step_index_header] == step)][step_time_header]
  
          Args:
              cycle: cycle number
              step: step number
              dataset_number: the dataset number (automatic selection if None)
  
          Returns:
              pandas.Series or None if empty
          """
  
          dataset_number = self._validate_dataset_number(dataset_number)
          if dataset_number is None:
              self._report_empty_dataset()
              return
          cycle_index_header = self.headers_normal.cycle_index_txt
          step_time_header = self.headers_normal.step_time_txt
          step_index_header = self.headers_normal.step_index_txt
          test = self.datasets[dataset_number].dfdata
  
          if isinstance(step, (list, tuple)):
              warnings.warn(f"The varialbe step is a list."
                            f"Should be an integer."
                            f"{step}")
              step = step[0]
  
          c = test.loc[
              (test[cycle_index_header] == cycle) &
              (test[step_index_header] == step), :
          ]
  
          if not self.is_empty(c):
              t = c[step_time_header]
              return t
          else:
              return None