code: def __init__(
      self,
      device,
      batch_size,
      output_type,
      input_type,
      fixed_size=None,
      num_threads=3,
      device_id=0,
      num_gpus=1,
  ):
      super(RotatePipeline, self).__init__(
          batch_size,
          num_threads,
          device_id,
          seed=7865,
          exec_async=False,
          exec_pipelined=False,
      )
      self.name = device
      self.input = ops.readers.Caffe(
          path=caffe_db_folder, shard_id=device_id, num_shards=num_gpus
      )
      self.decode = ops.decoders.Image(
          device="cpu", output_type=types.RGB
      )
      if input_type != dali.types.UINT8:
          self.cast = ops.Cast(device=device, dtype=input_type)
      else:
          self.cast = None
  
      self.uniform = ops.random.Uniform(range=(-180.0, 180.0), seed=42)
      self.rotate = ops.Rotate(
          device=device,
          size=fixed_size,
          fill_value=42,
          dtype=output_type,
      )
  
imports: import cv2
  import numpy
  import math
  import os
  import random
  from nvidia.dali.pipeline import Pipeline
  import nvidia.dali.ops
  import nvidia.dali.types
  import nvidia.dali
  from test_utils import compare_pipelines
  from sequences_test_utils import ArgData, ArgDesc, ArgCb, ParamsProvider, get_video_input_cases, sequence_suite_helper
label_desc: Use image node_id 1 to create a new RotatePipeline object from inherited base classes: Pipeline with example: obj = RotatePipeline(device, batch_size, output_type, input_type, fixed_size, num_threads, device_id, num_gpus)