'Try to construct a TimeZoneDefinition from
a) [DYNAMIC_]TIME_ZONE_INFORMATION args
b) another TimeZoneDefinition
c) a byte structure (using _from_bytes)'

def __init__(self, *args, **kwargs):

    try:
        super(TimeZoneDefinition, self).__init__(*args, **kwargs)
        return
    except (TypeError, ValueError):
        pass
    try:
        self.__init_from_other(*args, **kwargs)
        return
    except TypeError:
        pass
    try:
        self.__init_from_bytes(*args, **kwargs)
        return
    except TypeError:
        pass
    raise TypeError(('Invalid    arguments    for    %s' % self.__class__))
