def convert(arg_name, arg_type, arg_value): converted_value = arg_value try: if arg_type is file: if type(arg_value) is not file: if hasattr(arg_value, 'file'): converted_value = arg_value.file else: raise ValueError("Value must be an open file object, or uploaded file.") if arg_type == 'filedict': if type(arg_value) is not dict: if hasattr(arg_value, 'file'): converted_value = {'file': arg_value.file} else: raise ValueError("Value must be an open file object, or uploaded file.") if hasattr(arg_value, 'filename'): converted_value['filename'] = arg_value.filename elif arg_type is int: converted_value = int(arg_value) elif arg_type is float: converted_value = float(arg_value) elif arg_type is datetime: converted_value = convert_date(arg_value) elif type(arg_type) is declarative.DeclarativeMeta: if type(type(arg_value)) is not declarative.DeclarativeMeta: is_int = True try: arg_value = int(arg_value) except ValueError, e: is_int = False if not is_int and hasattr(arg_type, 'eid'): field = arg_type.eid if arg_value is str: arg_value = arg_value.decode('utf-8') else: arg_value = unicode(arg_value) else: field = arg_type.id arg_value = int(arg_value) converted_value = Session.query(arg_type).filter(field == arg_value).first() elif arg_type is str: if type(arg_value) is unicode: converted_value = arg_value.encode('utf-8') else: converted_value = str(arg_value)
def _to_python(self, value, state): try: value = convert_date(value) except (ValueError,), e: raise fv.Invalid(e.args[0], value, state)
def _to_python(self, value, state): try: value = convert_date(value) except (ValueError, ), e: raise fv.Invalid(e.args[0], value, state)