code: def _rain_process(
      tens, slant, drop_length, drop_color, drop_width, rain_drops
  ) -> Tensor:
      tens = to_tensor(tens, enforce_tensor=True)
      tens_t = tens.clone()
  
      for rain_drop in rain_drops:
          cv.line(
              tens_t,
              (rain_drop[0], rain_drop[1]),
              (rain_drop[0] + slant, rain_drop[1] + drop_length),
              drop_color,
              drop_width,
          )
  
      tens = cv.blur(tens_t, (7, 7))  ## Rainy views are blurred
      brightness_coefficient = 0.7  ## Rainy days are usually shady
  
      tens = _hls(tens)  ## Conversion to hls
      cspace = tens.cspace
  
      tens[:, :, 1] = (
          tens[:, :, 1] * brightness_coefficient
      )  ## scale pixel values down for channel 1 (Lightness)
  
      return to_tensor(tens, cspace=cspace)
  
imports: import cv2
  import random
  import math
  import numpy
  from ..coreten import Tensor, to_tensor
  from ..annotations import Tuple, Union
  from ..color import to_hls, to_rgb, to_bgr, to_hsv, to_gray, to_lab
label_desc: Use image node_id 13 for calling a global function with example usage: _rain_process(tens, slant, drop_length, drop_color, drop_width, rain_drops) and returns: to_tensor