'Initializer for range.
At least one of minimum and maximum must be supplied.
Args:
minimum: Minimum for attribute.
maximum: Maximum for attribute.
range_type: Type of field.  Defaults to int.
Raises:
AttributeDefinitionError: if the specified parameters are incorrect.'

def __init__(self, minimum, maximum, range_type=int, default=None):

    super(Range, self).__init__(default)
    if ((minimum is None) and (maximum is None)):
        raise AttributeDefinitionError('Must    specify    minimum    or    maximum.')
    if ((minimum is not None) and (not isinstance(minimum, range_type))):
        raise AttributeDefinitionError(('Minimum    value    must    be    of    type    %s,    instead    it    is    %s    (%s).' % (str(range_type), str(type(minimum)), str(minimum))))
    if ((maximum is not None) and (not isinstance(maximum, range_type))):
        raise AttributeDefinitionError(('Maximum    value    must    be    of    type    %s,    instead    it    is    %s    (%s).' % (str(range_type), str(type(maximum)), str(maximum))))
    self.minimum = minimum
    self.maximum = maximum
    self.expected_type = range_type
    self._type_validator = Type(range_type)
