code: def from_stash_entry(
      cls,
      repo: "Repo",
      entry: "ExpStashEntry",
      **kwargs,
  ):
      root_dir = repo.scm.root_dir
      executor: "WorkspaceExecutor" = cls._from_stash_entry(
          repo, entry, root_dir, **kwargs
      )
      logger.debug("Init workspace executor in '%s'", root_dir)
      return executor
  
imports: import os
  from contextlib import ExitStack
  from tempfile import mkdtemp
  from typing import TYPE_CHECKING, Optional, Union
  from configobj import ConfigObj
  from funcy import retry
  from shortuuid import uuid
  from dvc.lock import LockError
  from dvc.log import logger
  from dvc.repo.experiments.refs import EXEC_BASELINE, EXEC_BRANCH, EXEC_HEAD, EXEC_MERGE, EXEC_NAMESPACE, TEMP_NAMESPACE
  from dvc.repo.experiments.utils import EXEC_TMP_DIR, get_exp_rwlock
  from dvc.scm import SCM, Git
  from dvc.utils.fs import remove
  from dvc.utils.objects import cached_property
  from .base import BaseExecutor, TaskStatus
label_desc: Use image node_id 2 for calling the WorkspaceExecutor obj's underlying member method code with example usage: obj.from_stash_entry(cls, repo, entry) and returns: executor