class_docstr: Naive Git-stash based experiment queue.
  
  Maps queued experiments to (Git) stash reflog entries.
class_docstr_tok: ["Naive","Git-stash","based","experiment","queue",".","Maps","queued","experiments","to","(","Git",")","stash","reflog","entries","."]
code: def match_queue_entry_by_name(
      self,
      exp_names: Collection[str],
      *entries: Iterable[Union[QueueEntry, QueueDoneResult]],
  ) -> Dict[str, Optional[QueueEntry]]:
      from funcy import concat
  
      entry_name_dict: Dict[str, QueueEntry] = {}
      entry_rev_dict: Dict[str, QueueEntry] = {}
      for entry in concat(*entries):
          if isinstance(entry, QueueDoneResult):
              queue_entry: QueueEntry = entry.entry
              if (
                  entry.result is not None
                  and entry.result.ref_info is not None
              ):
                  name: Optional[str] = entry.result.ref_info.name
              else:
                  name = queue_entry.name
          else:
              queue_entry = entry
              name = queue_entry.name
          if name:
              entry_name_dict[name] = queue_entry
          entry_rev_dict[queue_entry.stash_rev] = queue_entry
  
      result: Dict[str, Optional[QueueEntry]] = {}
      for exp_name in exp_names:
          result[exp_name] = None
          if exp_name in entry_name_dict:
              result[exp_name] = entry_name_dict[exp_name]
              continue
          if self.scm.is_sha(exp_name):
              for rev in entry_rev_dict:
                  if rev.startswith(exp_name.lower()):
                      result[exp_name] = entry_rev_dict[rev]
                      break
  
      return result
  
imports: import os
  from abc import ABC, abstractmethod
  from dataclasses import asdict, dataclass
  from typing import TYPE_CHECKING, Any, Collection, Dict, Generator, Iterable, List, Mapping, NamedTuple, Optional, Type, Union
  from dvc_studio_client.post_live_metrics import get_studio_config
  from funcy import retry
  from dvc.dependency import ParamsDependency
  from dvc.env import DVC_EXP_BASELINE_REV, DVC_EXP_NAME, DVC_ROOT
  from dvc.lock import LockError
  from dvc.log import logger
  from dvc.repo.experiments.exceptions import ExperimentExistsError
  from dvc.repo.experiments.executor.base import BaseExecutor
  from dvc.repo.experiments.executor.local import WorkspaceExecutor
  from dvc.repo.experiments.refs import ExpRefInfo
  from dvc.repo.experiments.stash import ExpStash, ExpStashEntry
  from dvc.repo.experiments.utils import EXEC_PID_DIR, EXEC_TMP_DIR, get_exp_rwlock, get_random_exp_name
  from dvc.utils.objects import cached_property
  from dvc.utils.studio import config_to_env
  from .utils import get_remote_executor_refs
label_desc: Use image node_id 33 for calling the BaseStashQueue obj's underlying member method code with example usage: obj.match_queue_entry_by_name(exp_names) and returns: result