code: def _get_step_output_directory_path(
      execution_directory_path: str, step_name: str
  ) -> str:
      """
      Obtains the path of the local filesystem directory containing outputs for the specified step,
      which may or may not exist.
  
      :param execution_directory_path: The absolute path of the execution directory on the local
                                       filesystem for the relevant recipe. The Makefile is created
                                       in this directory.
      :param step_name: The name of the recipe step for which to obtain the output directory path.
      :return The absolute path of the local filesystem directory containing outputs for the specified
              step.
      """
      return os.path.abspath(
          os.path.join(
              execution_directory_path,
              _STEPS_SUBDIRECTORY_NAME,
              step_name,
              _STEP_OUTPUTS_SUBDIRECTORY_NAME,
          )
      )
  
imports: import hashlib
  import logging
  import os
  import pathlib
  import re
  import shutil
  from typing import Dict, List
  from mlflow.environment_variables import MLFLOW_RECIPES_EXECUTION_DIRECTORY, MLFLOW_RECIPES_EXECUTION_TARGET_STEP_NAME
  from mlflow.recipes.step import BaseStep, StepStatus
  from mlflow.utils.file_utils import read_yaml, write_yaml
  from mlflow.utils.process import _exec_cmd
label_desc: Use image node_id 8 for calling a global function with example usage: _get_step_output_directory_path(execution_directory_path, step_name) and returns: os