示例#1
0
    def __call__(self, v):
        try:
            if self.min_included:
                if self.min is not None and not v >= self.min:
                    raise RangeInvalid(
                        self.msg or 'value must be at least %s' % self.min)
            else:
                if self.min is not None and not v > self.min:
                    raise RangeInvalid(
                        self.msg or 'value must be higher than %s' % self.min)
            if self.max_included:
                if self.max is not None and not v <= self.max:
                    raise RangeInvalid(
                        self.msg or 'value must be at most %s' % self.max)
            else:
                if self.max is not None and not v < self.max:
                    raise RangeInvalid(
                        self.msg or 'value must be lower than %s' % self.max)

            return v

        # Objects that lack a partial ordering, e.g. None will raise TypeError
        except TypeError:
            raise RangeInvalid(self.msg
                               or 'value must have a partial ordering')
示例#2
0
 def __call__(self, v):
     if self.min_included:
         if self.min is not None and not v >= self.min:
             raise RangeInvalid(self.msg
                                or 'value must be at least %s' % self.min)
     else:
         if self.min is not None and not v > self.min:
             raise RangeInvalid(
                 self.msg or 'value must be higher than %s' % self.min)
     if self.max_included:
         if self.max is not None and not v <= self.max:
             raise RangeInvalid(self.msg
                                or 'value must be at most %s' % self.max)
     else:
         if self.max is not None and not v < self.max:
             raise RangeInvalid(self.msg
                                or 'value must be lower than %s' % self.max)
     return v
示例#3
0
    def __call__(self, v):
        try:
            if self.min is not None and v < self.min:
                v = self.min
            if self.max is not None and v > self.max:
                v = self.max
            return v

        # Objects that lack a partial ordering, e.g. None or strings will raise TypeError
        except TypeError:
            raise RangeInvalid(
                self.msg
                or 'invalid value or type (must have a partial ordering)')
示例#4
0
    def __call__(self, v):
        try:
            if self.min is not None and len(v) < self.min:
                raise LengthInvalid(
                    self.msg
                    or 'length of value must be at least %s' % self.min)
            if self.max is not None and len(v) > self.max:
                raise LengthInvalid(
                    self.msg
                    or 'length of value must be at most %s' % self.max)
            return v

        # Objects that havbe no length e.g. None or strings will raise TypeError
        except TypeError:
            raise RangeInvalid(self.msg or 'invalid value or type')