class_docstr: Base class representing a step in an MLflow Recipe
docstr: Returns the execution state of the step, which provides information about its
  status (succeeded, failed, unknown), last update time, and, if applicable, encountered
  stacktraces.
  
  :param output_directory: String file path to the directory where step
                           outputs are stored.
  :return: A ``StepExecutionState`` instance containing the step execution state.
docstr_tok: ["Returns","the","execution","state","of","the","step",",","which","provides","information","about","its","status","(","succeeded",",","failed",",","unknown",")",",","last","update","time",",","and",",","if","applicable",",","encountered","stacktraces",".",":","param","output_directory",":","String","file","path","to","the","directory","where","step","outputs","are","stored",".",":","return",":","A","``","StepExecutionState","``","instance","containing","the","step","execution","state","."]
code: def get_execution_state(
      self, output_directory: str
  ) -> StepExecutionState:
      """
      Returns the execution state of the step, which provides information about its
      status (succeeded, failed, unknown), last update time, and, if applicable, encountered
      stacktraces.
  
      :param output_directory: String file path to the directory where step
                               outputs are stored.
      :return: A ``StepExecutionState`` instance containing the step execution state.
      """
      execution_state_file_path = os.path.join(
          output_directory, BaseStep._EXECUTION_STATE_FILE_NAME
      )
      if os.path.exists(execution_state_file_path):
          with open(execution_state_file_path) as f:
              return StepExecutionState.from_dict(json.load(f))
      else:
          return StepExecutionState(StepStatus.UNKNOWN, 0, None)
  
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 13 for calling the BaseStep obj's underlying member method code with example usage: obj.get_execution_state(output_directory) and returns: StepExecutionState, StepExecutionState