class_docstr: Injects anomalies into a time series with controlled randomness and returns
  both the anomalized time series along with associated anomaly labels.
code: def natural_bounds(self, bounds: Tuple[float, float]):
      lower, upper = bounds
      if lower is not None or upper is not None:
          self.bound = LowerUpperClip(lower, upper)
      else:
          self.bound = Identity()
      self.nat_lower = lower
      self.nat_upper = upper
  
imports: from abc import abstractmethod
  from typing import Tuple
  import numpy
  import pandas
  from merlion.transform.base import Identity, TransformBase
  from merlion.transform.bound import LowerUpperClip
  from merlion.utils.time_series import UnivariateTimeSeries, TimeSeries
label_desc: Use image node_id 3 for calling the Anomalize obj's underlying member method code with example usage: obj.natural_bounds(bounds) without return types