class_docstr: Rotate entire clip randomly by a random angle within
  given bounds
  
  Args:
  degrees (sequence or int): Range of degrees to select from
  If degrees is a number instead of sequence like (min, max),
  the range of degrees, will be (-degrees, +degrees).
class_docstr_tok: ["Rotate","entire","clip","randomly","by","a","random","angle","within","given","bounds","Args",":","degrees","(","sequence","or","int",")",":","Range","of","degrees","to","select","from","If","degrees","is","a","number","instead","of","sequence","like","(","min",",","max",")",",","the","range","of","degrees",",","will","be","(","-degrees",",","+degrees",")","."]
docstr: Args:
  img (PIL.Image or numpy.ndarray): List of images to be cropped
  in format (h, w, c) in numpy.ndarray
  
  Returns:
  PIL.Image or numpy.ndarray: Cropped list of images
docstr_tok: ["Args",":","img","(","PIL.Image","or","numpy.ndarray",")",":","List","of","images","to","be","cropped","in","format","(","h",",","w",",","c",")","in","numpy.ndarray","Returns",":","PIL.Image","or","numpy.ndarray",":","Cropped","list","of","images"]
code: def __call__(self, clip):
      """
      Args:
      img (PIL.Image or numpy.ndarray): List of images to be cropped
      in format (h, w, c) in numpy.ndarray
  
      Returns:
      PIL.Image or numpy.ndarray: Cropped list of images
      """
      import skimage
  
      angle = random.uniform(self.degrees[0], self.degrees[1])
      if isinstance(clip[0], np.ndarray):
          rotated = [
              skimage.transform.rotate(img, angle) for img in clip
          ]
      elif isinstance(clip[0], PIL.Image.Image):
          rotated = [img.rotate(angle) for img in clip]
      else:
          raise TypeError(
              "Expected numpy.ndarray or PIL.Image"
              + "but got list of {0}".format(type(clip[0]))
          )
  
      return rotated
  
imports: import numbers
  import random
  import numpy
  import PIL
  import torch
  import torchvision
  from .None import functional
label_desc: Use image node_id 2 for calling the RandomRotation obj's underlying member method code with example usage: obj.__call__(clip) and returns: rotated