class_docstr: Select one or another transform to apply. Selected transform will be called with `force_apply=True`.
class_docstr_tok: ["Select","one","or","another","transform","to","apply",".","Selected","transform","will","be","called","with","`","force_apply=True","`","."]
code: def __init__(
      self,
      first: typing.Optional[TransformType] = None,
      second: typing.Optional[TransformType] = None,
      transforms: typing.Optional[TransformsSeqType] = None,
      p: float = 0.5,
  ):
      if transforms is None:
          if first is None or second is None:
              raise ValueError(
                  "You must set both first and second or set transforms argument."
              )
          transforms = [first, second]
      super(OneOrOther, self).__init__(transforms, p)
      if len(self.transforms) != 2:
          warnings.warn("Length of transforms is not equal to 2.")
  
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 1 to create a new OneOrOther object from inherited base classes: BaseCompose with example: obj = OneOrOther(first, second, transforms, p)