class_docstr: Tabular suite to run checks of types: TrainTestCheck, SingleDatasetCheck, ModelOnlyCheck.
class_docstr_tok: ["Tabular","suite","to","run","checks","of","types",":","TrainTestCheck",",","SingleDatasetCheck",",","ModelOnlyCheck","."]
code: def _update_loop(
      cls,
      context: Context,
      dataset_kind: DatasetKind,
      results: Dict[Union[str, int], BaseCheckResult],
      progressbar_factory: ProgressBarGroup,
      train_test_checks,
      single_dataset_checks,
      max_samples,
  ):
      checks_to_update = {**train_test_checks, **single_dataset_checks}
      vision_data = context.get_data_by_kind(dataset_kind)
  
      # Update loop over the batches
      with progressbar_factory.create_dummy(
          name="Processing Batches:" + vision_data.name
      ):
          for batch in vision_data:
              batch = BatchWrapper(
                  batch,
                  vision_data.task_type,
                  vision_data.number_of_images_cached,
              )
              vision_data.update_cache(
                  len(batch),
                  batch.numpy_labels,
                  batch.numpy_predictions,
              )
              for name, check in list(checks_to_update.items()):
                  try:
                      check.update(
                          context, batch, dataset_kind=dataset_kind
                      )
                      if vision_data.number_of_images_cached > np.min(
                          (max_samples, check.n_samples or np.inf)
                      ):
                          checks_to_update.pop(name)
                  except Exception as exp:
                      results[name] = CheckFailure(
                          check, exp, vision_data.name
                      )
                      checks_to_update.pop(name)
                      if name in single_dataset_checks:
                          single_dataset_checks.pop(name)
                      else:
                          train_test_checks.pop(name)
              if len(checks_to_update) == 0:
                  break
  
      # Compute for single dataset checks
      checks_pbar = progressbar_factory.create(
          iterable=list(single_dataset_checks.items()),
          unit="Check",
          name="Computing Single Dataset Checks " + vision_data.name,
      )
      for name, check in checks_pbar:
          checks_pbar.set_postfix(
              {"Check": check.name()}, refresh=False
          )
          try:
              result = check.compute(context, dataset_kind=dataset_kind)
              context.finalize_check_result(
                  result, check, dataset_kind=dataset_kind
              )
              results[name] = result
          except Exception as exp:
              results[name] = CheckFailure(check, exp, vision_data.name)
  
file_path: deepchecks/deepchecks/vision/suite.py
imports: from collections import OrderedDict
  from copy import copy
  from typing import Dict, Optional, Tuple, Union
  import numpy
  from deepchecks.core.check_result import BaseCheckResult, CheckFailure
  from deepchecks.core.checks import DatasetKind
  from deepchecks.core.errors import DeepchecksNotSupportedError
  from deepchecks.core.suite import BaseSuite, SuiteResult
  from deepchecks.utils.ipython import ProgressBarGroup
  from deepchecks.vision._shared_docs import docstrings
  from deepchecks.vision.base_checks import ModelOnlyCheck, SingleDatasetCheck, TrainTestCheck
  from deepchecks.vision.context import Context
  from deepchecks.vision.vision_data import VisionData
  from deepchecks.vision.vision_data.batch_wrapper import BatchWrapper
label_desc: Use image node_id 3 for calling the Suite obj's underlying member method code with example usage: obj._update_loop(cls, context, dataset_kind, results, progressbar_factory, train_test_checks, single_dataset_checks, max_samples) without return types