class_docstr: A parameter in an MLproject entry point.
class_docstr_tok: ["A","parameter","in","an","MLproject","entry","point","."]
code: def _compute_path_value(
      self, user_param_value, storage_dir, key_position
  ):
      local_path = get_local_path_or_none(user_param_value)
      if local_path:
          if not os.path.exists(local_path):
              raise ExecutionException(
                  f"Got value {user_param_value} for parameter {self.name}, but no such file or "
                  "directory was found."
              )
          return os.path.abspath(local_path)
      target_sub_dir = f"param_{key_position}"
      download_dir = os.path.join(storage_dir, target_sub_dir)
      os.mkdir(download_dir)
      return artifact_utils._download_artifact_from_uri(
          artifact_uri=user_param_value, output_path=download_dir
      )
  
imports: import os
  import yaml
  from mlflow.exceptions import ExecutionException
  from mlflow.projects import env_type
  from mlflow.tracking import artifact_utils
  from mlflow.utils import data_utils
  from mlflow.utils.environment import _PYTHON_ENV_FILE_NAME
  from mlflow.utils.file_utils import get_local_path_or_none
  from mlflow.utils.string_utils import is_string_type, quote
label_desc: Use image node_id 3 for calling the Parameter obj's underlying member method code with example usage: obj._compute_path_value(user_param_value, storage_dir, key_position) and returns: artifact_utils, os