def get_time_offset()

in decisionai_plugin/common/util/timeutil.py [0:0]


def get_time_offset(timestamp, graninfo, offset):
    (gran_str, custom_in_seconds) = graninfo

    if gran_str == 'Daily':
        return timestamp + datetime.timedelta(days=offset)
    elif gran_str == 'Weekly':
        return timestamp + datetime.timedelta(weeks=offset)
    elif gran_str == 'Monthly':
        return timestamp + dateutil.relativedelta.relativedelta(months=offset)
    elif gran_str == 'Yearly':
        return timestamp + dateutil.relativedelta.relativedelta(years=offset)
    elif gran_str == 'Hourly':
        return timestamp + datetime.timedelta(hours=offset)
    elif gran_str == 'Minutely':
        return timestamp + datetime.timedelta(minutes=offset)
    elif gran_str == 'Secondly':
        return timestamp + datetime.timedelta(seconds=offset)
    elif gran_str == 'Custom':
        return timestamp + datetime.timedelta(seconds=custom_in_seconds * offset)
    else:
        raise Exception('Granularity not supported: {}|{}'.format(*graninfo))