code: def status(
      repo: "Repo",
      untracked_files: str = "no",
      **kwargs: Any,
  ) -> Status:
      from dvc.scm import NoSCMError, SCMError
  
      head = kwargs.pop("head", "HEAD")
      uncommitted_diff = _diff_index_to_wtree(
          repo,
          **kwargs,
      )
      unchanged = set(uncommitted_diff.pop("unchanged", []))
  
      try:
          committed_diff = _diff_head_to_index(
              repo, head=head, **kwargs
          )
      except (SCMError, NoSCMError):
          committed_diff = {}
      else:
          unchanged &= set(committed_diff.pop("unchanged", []))
  
      git_info = _git_info(repo.scm, untracked_files=untracked_files)
      untracked = git_info.get("untracked", [])
      untracked = _transform_git_paths_to_dvc(repo, untracked)
      # order matters here
      return Status(
          not_in_cache=uncommitted_diff.pop("not_in_cache", []),
          not_in_remote=uncommitted_diff.pop("not_in_remote", []),
          committed=committed_diff,
          uncommitted=uncommitted_diff,
          untracked=untracked,
          unchanged=list(unchanged),
          git=git_info,
      )
  
file_path: dvc/dvc/repo/data.py
imports: import os
  import posixpath
  from typing import TYPE_CHECKING, Any, Dict, Iterable, List, TypedDict, Union
  from dvc.fs.callbacks import DEFAULT_CALLBACK
  from dvc.ui import ui
label_desc: Use image node_id 9 for calling a global function with example usage: status(repo, untracked_files) and returns: Status