class Error(Exception):
"" "Base validation exception." ""
class SchemaError(Error):
"" "An error was encountered in the schema." ""
class Invalid(Error):
"" "The data was invalid.
:attr msg: The error message.
:attr path: The path to the error, as a list of keys in the source data.
:attr error_message: The actual error message that was raised, as a
string.
"" "
def __init__(self, message, path=None , error_message=None , error_type=None ):
Error.__init__(self, message)
self.path = path or []
self.error_message = error_message or message
self.error_type = error_type
@property
def msg(self):
return self.args[0]
def __str__(self):
path = ' @ data[%s]' % '][' .join(map(repr, self.path)) \
if self.path else ''
output = Exception.__str__(self)
if self.error_type:
output += ' for ' + self.error_type
return output + path
def prepend(self, path):
self.path = path + self.path
class MultipleInvalid(Invalid):
def __init__(self, errors=None ):
self.errors = errors[:] if errors else []
def __repr__(self):
return 'MultipleInvalid(%r)' % self.errors
@property
def msg(self):
return self.errors[0].msg
@property
def path(self):
return self.errors[0].path
@property
def error_message(self):
return self.errors[0].error_message
def add(self, error):
self.errors.append(error)
def __str__(self):
return str(self.errors[0])
def prepend(self, path):
for error in self.errors:
error.prepend(path)
class RequiredFieldInvalid(Invalid):
"" "Required field was missing." ""
class ObjectInvalid(Invalid):
"" "The value we found was not an object." ""
class DictInvalid(Invalid):
"" "The value found was not a dict." ""
class ExclusiveInvalid(Invalid):
"" "More than one value found in exclusion group." ""
class InclusiveInvalid(Invalid):
"" "Not all values found in inclusion group." ""
class SequenceTypeInvalid(Invalid):
"" "The type found is not a sequence type." ""
class TypeInvalid(Invalid):
"" "The value was not of required type." ""
class ValueInvalid(Invalid):
"" "The value was found invalid by evaluation function." ""
class ContainsInvalid(Invalid):
"" "List does not contain item" ""
class ScalarInvalid(Invalid):
"" "Scalars did not match." ""
class CoerceInvalid(Invalid):
"" "Impossible to coerce value to type." ""
class AnyInvalid(Invalid):
"" "The value did not pass any validator." ""
class AllInvalid(Invalid):
"" "The value did not pass all validators." ""
class MatchInvalid(Invalid):
"" "The value does not match the given regular expression." ""
class RangeInvalid(Invalid):
"" "The value is not in given range." ""
class TrueInvalid(Invalid):
"" "The value is not True." ""
class FalseInvalid(Invalid):
"" "The value is not False." ""
class BooleanInvalid(Invalid):
"" "The value is not a boolean." ""
class UrlInvalid(Invalid):
"" "The value is not a URL." ""
class EmailInvalid(Invalid):
"" "The value is not an email address." ""
class FileInvalid(Invalid):
"" "The value is not a file." ""
class DirInvalid(Invalid):
"" "The value is not a directory." ""
class PathInvalid(Invalid):
"" "The value is not a path." ""
class LiteralInvalid(Invalid):
"" "The literal values do not match." ""
class LengthInvalid(Invalid):
pass
class DatetimeInvalid(Invalid):
"" "The value is not a formatted datetime string." ""
class DateInvalid(Invalid):
"" "The value is not a formatted date string." ""
class InInvalid(Invalid):
pass
class NotInInvalid(Invalid):
pass
class ExactSequenceInvalid(Invalid):
pass
class NotEnoughValid(Invalid):
"" "The value did not pass enough validations." ""
pass
class TooManyValid(Invalid):
"" "The value passed more than expected validations." ""
pass
Messung V0.5 C=99 H=100 G=99
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland