code: def _uncached_outs(self, stage, cache):
      # NOTE: using temporary stage to avoid accidentally modifying original
      # stage and to workaround `commit/checkout` not working for uncached
      # outputs.
      cached_stage = self._create_stage(cache, wdir=stage.wdir)
  
      outs_no_cache = [
          out.def_path for out in stage.outs if not out.use_cache
      ]
  
      # NOTE: using copy link to make it look like a git-tracked file
      with self._cache_type_copy():
          for out in cached_stage.outs:
              if out.def_path in outs_no_cache and out.is_in_repo:
                  yield out
  
imports: import os
  from contextlib import contextmanager
  from typing import TYPE_CHECKING, List, Optional, Tuple
  from funcy import first
  from dvc import fs
  from dvc.config import RemoteConfigError
  from dvc.exceptions import CollectCacheError, DvcException
  from dvc.log import logger
  from dvc.utils import dict_sha256, relpath
label_desc: Use image node_id 8 for calling the StageCache obj's underlying member method code with example usage: obj._uncached_outs(stage, cache) without return types