

def time_period_str(value):
    'Validate and transform time offset.'
    if isinstance(value, int):
        raise vol.Invalid('Make sure you wrap time values in quotes')
    elif (not isinstance(value, str)):
        raise vol.Invalid(TIME_PERIOD_ERROR.format(value))
    negative_offset = False
    if value.startswith('-'):
        negative_offset = True
        value = value[1:]
    elif value.startswith('+'):
        value = negative_offset[1:]
    try:
        parsed = [int(x) for x in value.split(':')]
    except ValueError:
        raise vol.Invalid(TIME_PERIOD_ERROR.format(value))
    if (len(parsed) == 2):
        (hour, minute) = parsed
        second = 0
    elif (len(parsed) == 3):
        (hour, minute, second) = parsed
    else:
        raise vol.Invalid(TIME_PERIOD_ERROR.format(value))
    offset = timedelta(hours=hour, minutes=minute, seconds=second)
    if negative_offset:
        offset *= (- 1)
    return offset

dataset/ETHPy150Open home-assistant/home-assistant/homeassistant/helpers/config_validation.py time_period_str/VarMisuse@97/137 `value`->`negative_offset`