docs: def compute_delayed_until(delayed_for=None, delayed_until=None):
      """
      Return a datetime object based on either the `delayed_for` argument
      (int/float/timedelta), which wille be added to the current datetime
      (`datetime.utcnow`), or the `delayed_until` one which must be a
      datetime object.
      Raise a `ValueError` exception if both are set, or a invalid type is
      used.
      Returns None if both arguments are None.
      """
      if delayed_until:
          if delayed_for:
              raise ValueError('delayed_until and delayed_for arguments are exclusive')
          if not isinstance(delayed_until, datetime):
              raise ValueError('Invalid delayed_until argument: must be a datetime object')
  
      if delayed_for:
          try:
              delayed_until = datetime.utcnow() + get_delta(delayed_for)
          except Exception:
              raise ValueError('Invalid delayed_for argument: must be an int, a float or a timedelta object')
  
      return delayed_until