'Initializer value can be:
- integer_type: absolute nanoseconds in the day
- datetime.time: built-in time
- string_type: a string time of the form "HH:MM:SS[.mmmuuunnn]"'

def __init__(self, value):

    if isinstance(value, six.integer_types):
        self._from_timestamp(value)
    elif isinstance(value, datetime.time):
        self._from_time(value)
    elif isinstance(value, six.string_types):
        self._from_timestring(value)
    else:
        raise TypeError('Time    arguments    must    be    a    whole    number,    datetime.time,    or    string')
