code: def run(self) -> int:
      with log_durations(logger.trace, "in data_status"):
          status = self.repo.data_status(
              granular=self.args.granular,
              untracked_files=self.args.untracked_files,
              not_in_remote=self.args.not_in_remote,
              remote_refresh=self.args.remote_refresh,
          )
  
      if not self.args.unchanged:
          status.pop("unchanged")  # type: ignore[misc]
      if self.args.untracked_files == "no":
          status.pop("untracked")
      if self.args.json:
          status.pop("git")  # type: ignore[misc]
          ui.write_json(compact(status))
          return 0
      return self._show_status(status)
  
file_path: dvc/dvc/commands/data.py
imports: from typing import TYPE_CHECKING
  from funcy import chunks, compact, log_durations
  from dvc.cli import formatter
  from dvc.cli.command import CmdBase
  from dvc.cli.utils import append_doc_link
  from dvc.log import logger
  from dvc.ui import ui
  from dvc.utils import colorize
label_desc: Use image node_id 3 for calling the CmdDataStatus obj's underlying member method code with example usage: obj.run() and returns: self, int