code: def _deduce_run_id_from_meta_dir(meta_dir_path, sub_type):
      curr_order = ObjectOrder.type_to_order(sub_type)
      levels_to_ascend = curr_order - ObjectOrder.type_to_order("run")
      if levels_to_ascend < 0:
          return None
      curr_path = meta_dir_path
      for _ in range(
          levels_to_ascend + 1
      ):  # +1 to account for ../_meta
          curr_path, _ = os.path.split(curr_path)
      _, run_id = os.path.split(curr_path)
      if not run_id:
          raise MetaflowInternalError(
              "Failed to deduce run_id from meta dir %s" % meta_dir_path
          )
      return run_id
  
imports: import collections
  import glob
  import json
  import os
  import random
  import tempfile
  import time
  from collections import namedtuple
  from metaflow.exception import MetaflowInternalError, MetaflowTaggingError
  from metaflow.metadata.metadata import ObjectOrder
  from metaflow.metaflow_config import DATASTORE_LOCAL_DIR
  from metaflow.metadata import MetadataProvider
  from metaflow.tagging_util import MAX_USER_TAG_SET_SIZE, validate_tags
label_desc: Use image node_id 13 for calling the LocalMetadataProvider obj's underlying member method code with example usage: obj._deduce_run_id_from_meta_dir(meta_dir_path, sub_type) and returns: run_id, None