code: def pull(  # noqa: PLR0913
      self,
      targets=None,
      jobs=None,
      remote=None,
      all_branches=False,
      with_deps=False,
      all_tags=False,
      force=False,
      recursive=False,
      all_commits=False,
      run_cache=False,
      glob=False,
      allow_missing=False,
  ):
      if isinstance(targets, str):
          targets = [targets]
  
      expanded_targets = glob_targets(targets, glob=glob)
  
      processed_files_count = self.fetch(
          expanded_targets,
          jobs,
          remote=remote,
          all_branches=all_branches,
          all_tags=all_tags,
          all_commits=all_commits,
          with_deps=with_deps,
          recursive=recursive,
          run_cache=run_cache,
      )
      try:
          stats = self.checkout(
              targets=expanded_targets,
              with_deps=with_deps,
              force=force,
              recursive=recursive,
              allow_missing=allow_missing,
          )
      except CheckoutError as exc:
          exc.stats["fetched"] = processed_files_count
          raise
  
      stats["fetched"] = processed_files_count
      return stats
  
imports: from dvc.exceptions import CheckoutError
  from dvc.log import logger
  from dvc.repo import locked
  from dvc.utils import glob_targets
label_desc: Use image node_id 1 for calling a global function with example usage: pull(targets, jobs, remote, all_branches, with_deps, all_tags, force, recursive, all_commits, run_cache, glob, allow_missing) and returns: stats