code: def _pull_dep(dep, run_dir, remote=None):
      cmd = ["dvc", "pull", dep]
      if remote:
          cmd.extend(["--remote", remote])
      log.info("Fetching DvC resource %s", dep)
      log.debug("dvc pull cmd: %s", cmd)
      try:
          subprocess.check_call(["dvc", "pull", dep], cwd=run_dir)
      except subprocess.CalledProcessError as e:
          if log.getEffectiveLevel() <= logging.DEBUG:
              log.exception("cmd: %s", cmd)
          raise DvcPullError(
              f"error fetching DvC resource {dep}: 'dvc pull' exited with "
              f"non-zero exit status {e.returncode} (see above for details)"
          ) from e
      else:
          dep_path = os.path.join(run_dir, dep)
          if not os.path.exists(dep_path):
              raise DvcPullError(
                  f"'dvc pull' did not fetch the expected file {dep} "
                  "(see above for details)"
              )
          return dep_path
  
imports: import json
  import logging
  import os
  import subprocess
  import yaml
  from guild import util
  from guild import var
label_desc: Use image node_id 32 for calling a global function with example usage: _pull_dep(dep, run_dir, remote) and returns: dep_path