def parse(self, args): """Parse `args' to Python format.""" data = super(EnumControl, self).parse(args) value = data[self.name] if value is not None and value not in self.values: m = tr('Illegal value for field: %s.') % tr(self.label) fields = [self.name] raise FormError(m, fields) return data
def parse(self, args): """Parse `args'.""" data = super(StringControl, self).parse(args) value = data.get(self.name) if value is not None: value = value.strip() if self.re_eol.search(value): m = tr('Illegal value for field %s (no end-of-lines allowed).') \ % tr(self.label) fields = [self.name] raise FormError(m, fields) data[self.name] = value return data
def parse(self, args): value = args.get(self.name) if value: if not isinstance(value, FileUpload): m = tr('Expecting file upload for field: %s') % tr(self.label) fields = [self.name] raise FormError(m, fields) elif self.nullok: value = None else: m = tr('No file selected for field: %s') % tr(self.label) fields = [self.name] raise FormError(m, fields) result = {} result[self.name] = value return result
def parse(self, args): """Parse `args' to Python format.""" result = super(NumericControl, self).parse(args) value = result[self.name] if value is not None: if self.minval is not None and value < self.minval: m = tr('Value of field %s is too low (minimum value is %s).') \ % (tr(self.label), self.minval) fields = [self.name] raise FormError(m, fields) elif self.maxval is not None and value > self.maxval: m = tr('Value of field %s is too high (maximum value is %s).') \ % (tr(self.label), self.minval) fields = [self.name] raise FormError(m, fields) return result
def parse(self, args): """Parse `args' to Python format.""" data = super(BooleanControl, self).parse(args) value = data[self.name] if value == 'true': value = True elif value == 'false': value = False elif value is None: value = None else: m = tr('Illegal value for field: %s') % tr(self.label) fields = [self.name] raise FormError(m, fields) data[self.name] = value return data
def parse(self, args): """Parse `args' to Python format.""" data = super(DateTimeBaseControl, self).parse(args) value = data[self.name] if value is not None: for fmt in self.formats: try: tm = time.strptime(value, fmt) break except ValueError: pass else: m = tr('Illegal format for field: %s') % tr(self.label) fields = [self.name] raise FormError(m, fields) value = self.date_type(*tuple(tm)[self.tm_slice]) data[self.name] = value return data
def parse(self, args): """Parse `args' to Python format.""" value = args.get(self.name, '') if not isinstance(value, basestring): m = tr('Expecting scalar value for field: %s') % tr(self.label) fields = [self.name] raise FormError(m, fields) if self.nullok and value == self.null_value: value = None elif not value: if self.default is None: m = tr('A value is required for field: %s') % tr(self.label) fields = [self.name] raise FormError(m, fields) value = self.default if value is not None and self.type is not None: try: value = self.type(value) except ValueError: m = tr('Illegal value for field: %s') % tr(self.label) fields = [self.name] raise FormError(m, fields) result = {} result[self.name] = value return result
def parse(self, args): """Parse `args' to Python format.""" data = super(CharacterControl, self).parse(args) value = data[self.name] if value is not None: if self.strip is not None: value = self.strip.sub('', value) data[self.name] = value if self.minlen is not None and len(value) < self.minlen: m = tr('Input for field %s is too short (minimum length is %d).') \ % (tr(self.label), self.minlen) fields = [self.name] raise FormError(m, fields) if self.maxlen is not None and len(value) > self.maxlen: m = tr('Input for field %s is too long (maximum length is %d).') \ % (tr(self.label), self.maxlen) fields = [self.name] raise FormError(m, fields) if self.regex is not None and not self.regex.match(value): m = tr('The input for field %s does not match the required ' \ 'format.') % tr(self.label) fields = [self.name] raise FormError(m, fields) return data