class_docstr: Compose transforms and handle all transformations regarding bounding boxes
  
  Args:
      transforms (list): list of transformations to compose.
      bbox_params (BboxParams): Parameters for bounding boxes transforms
      keypoint_params (KeypointParams): Parameters for keypoints transforms
      additional_targets (dict): Dict with keys - new target name, values - old target name. ex: {'image2': 'image'}
      p (float): probability of applying all list of transforms. Default: 1.0.
      is_check_shapes (bool): If True shapes consistency of images/mask/masks would be checked on each call. If you
          would like to disable this check - pass False (do it only if you are sure in your data consistency).
class_docstr_tok: ["Compose","transforms","and","handle","all","transformations","regarding","bounding","boxes","Args",":","transforms","(","list",")",":","list","of","transformations","to","compose",".","bbox_params","(","BboxParams",")",":","Parameters","for","bounding","boxes","transforms","keypoint_params","(","KeypointParams",")",":","Parameters","for","keypoints","transforms","additional_targets","(","dict",")",":","Dict","with","keys","-","new","target","name",",","values","-","old","target","name",".","ex",":","{","'image2","'",":","'image","'","}","p","(","float",")",":","probability","of","applying","all","list","of","transforms",".","Default",":","1.0.","is_check_shapes","(","bool",")",":","If","True","shapes","consistency","of","images\/mask\/masks","would","be","checked","on","each","call",".","If","you","would","like","to","disable","this","check","-","pass","False","(","do","it","only","if","you","are","sure","in","your","data","consistency",")","."]
code: def __call__(
      self, *args, force_apply: bool = False, **data
  ) -> typing.Dict[str, typing.Any]:
      if args:
          raise KeyError(
              "You have to pass data to augmentations as named arguments, for example: aug(image=image)"
          )
      if self.is_check_args:
          self._check_args(**data)
      assert isinstance(
          force_apply, (bool, int)
      ), "force_apply must have bool or int type"
      need_to_run = force_apply or random.random() < self.p
      for p in self.processors.values():
          p.ensure_data_valid(data)
      transforms = (
          self.transforms
          if need_to_run
          else get_always_apply(self.transforms)
      )
  
      check_each_transform = any(
          getattr(item.params, "check_each_transform", False)
          for item in self.processors.values()
      )
  
      for p in self.processors.values():
          p.preprocess(data)
  
      for idx, t in enumerate(transforms):
          data = t(**data)
  
          if check_each_transform:
              data = self._check_data_post_transform(data)
      data = Compose._make_targets_contiguous(
          data
      )  # ensure output targets are contiguous
  
      for p in self.processors.values():
          p.postprocess(data)
  
      return data
  
imports: from __future__ import division
  import random
  import typing
  import warnings
  from collections import defaultdict
  import numpy
  from ..None import random_utils
  from .bbox_utils import BboxParams, BboxProcessor
  from .keypoints_utils import KeypointParams, KeypointsProcessor
  from .serialization import SERIALIZABLE_REGISTRY, Serializable, get_shortest_class_fullname, instantiate_nonserializable
  from .transforms_interface import BasicTransform
  from .utils import format_args, get_shape
label_desc: Use image node_id 4 for calling the Compose obj's underlying member method code with example usage: obj.__call__() and returns: data