class_docstr: Base class representing a step in an MLflow Recipe
docstr: This function is responsible for executing the step, writing outputs
  to the specified directory, and returning results to the user. It
  is invoked by the internal step runner.
  
  :param output_directory: String file path to the directory where step outputs
                           should be stored.
  :return: A BaseCard containing step execution information.
docstr_tok: ["This","function","is","responsible","for","executing","the","step",",","writing","outputs","to","the","specified","directory",",","and","returning","results","to","the","user",".","It","is","invoked","by","the","internal","step","runner",".",":","param","output_directory",":","String","file","path","to","the","directory","where","step","outputs","should","be","stored",".",":","return",":","A","BaseCard","containing","step","execution","information","."]
code: def _run(self, output_directory: str) -> BaseCard:
      """
      This function is responsible for executing the step, writing outputs
      to the specified directory, and returning results to the user. It
      is invoked by the internal step runner.
  
      :param output_directory: String file path to the directory where step outputs
                               should be stored.
      :return: A BaseCard containing step execution information.
      """
      pass
  
imports: import abc
  import json
  import logging
  import os
  import time
  import traceback
  from enum import Enum
  from typing import Any, Dict, List, Optional
  import yaml
  from mlflow.recipes.cards import CARD_HTML_NAME, CARD_PICKLE_NAME, BaseCard, FailureCard
  from mlflow.recipes.utils import get_recipe_name
  from mlflow.recipes.utils.step import display_html
  from mlflow.tracking import MlflowClient
  from mlflow.utils.databricks_utils import is_in_databricks_runtime
label_desc: Use image node_id 5 for calling the BaseStep obj's underlying member method code with example usage: obj._run(output_directory) without return types