def validate(self, value): if self._argparse_value is not None: value = self._argparse_value if value is None: if self._default is required: raise ValidationError('this value is required') else: return ConfigValue(None, self._default) else: values = value.value if not isinstance(values, list): values = [values] validated_list = [] if len(values) != len(self._types): raise ValidationError('bad array size (should be %d, found %d ' 'items)' % (len(self._types), len(values))) for i, (item, item_type) in enumerate(zip(values, self._types)): try: item = item_type.validate(item) except ValidationError as err: raise ValidationError('item #%d, %s' % (i, err), position=value.position) else: validated_list.append(item) return ConfigValue(value.name, validated_list, position=value.position)
def p_assignation(self, p): """assignment : NAME ASSIGN value | NAME ASSIGN list""" position = Position(self._input_name, p.lineno(3), p.lexer.column(p.lexpos(3))) value = ConfigValue(p[1], p[3], position=position) p[0] = value
def p_section_args(self, p): """section_args : value LIST_SEP section_args | value""" if len(p) == 2: position = Position(self._input_name, p.lineno(1), p.lexer.column(p.lexpos(1))) p[0] = ConfigValue('<args>', [p[1]], position=position) else: p[3].value.insert(0, p[1]) p[0] = p[3]
def validate(self, value): if self._argparse_value is not None: value = self._argparse_value if value is None: if self._default is required: raise ValidationError('this value is required') else: return ConfigValue(None, self._default) else: if isinstance(value.value, list): if len(value.value) == 1: value.value = value.value[0] else: raise ValidationError('%r is a list' % value.value, position=value.position) try: validated_value = self._type.validate(value.value) except ValidationError as err: raise ValidationError(str(err), position=value.position) return ConfigValue(value.name, validated_value, position=value.position)
def validate(self, value): if self._argparse_value is not None: value = self._argparse_value if value is None: if self._default is required: raise ValidationError('this value is required') else: return ConfigValue(None, self._default) else: if isinstance(value.value, list): if len(value.value) == 1: value.value = value.value[0] else: raise ValidationError('%r is a list' % value.value, position=value.position) if value.value in self._choices: return ConfigValue(value.name, self._choices[value.value], position=value.position) else: choices = ', '.join(repr(x) for x in self._choices) raise ValidationError('bad choice (must be one of %s)' % choices)
def validate(self, value): if self._argparse_value is not None: value = self._argparse_value if value is None: if self._default is required: raise ValidationError('this value is required') else: return ConfigValue(None, self._default) else: values = value.value if not isinstance(values, list): values = [values] validated_list = [] for i, item in enumerate(values): try: item = self._type.validate(item) except ValidationError as err: raise ValidationError('item #%d, %s' % (i, err), position=value.position) else: validated_list.append(item) return ConfigValue(value.name, validated_list, position=value.position)
def __call__(self, parser, namespace, values, option_string=None): if self._const is not None: value._argparse_value = ConfigValue(name, self._const) else: value._argparse_value = ConfigValue(name, values[0])
def __call__(self, parser, namespace, values, option_string=None): value._argparse_value = ConfigValue(name, values)