class ValidationError(Exception): """Class for reporting validation errors.""" BAD_RECORD = 1 def __init__(self, error, msg, **kwargs): """Record Validation Error. Requires python 2.6 Args: error: ValidationError code e.g. ValidationError.BAD_RECORD msg: format string for human readable version of the error **kwargs: kwargs to populate format string """ super(ValidationError, self).__init__(self) self.message = msg.format(**kwargs) self.error = error self.kwargs = dict(kwargs) def __str__(self): return self.message
You can use it like this:
e = ValidationError(ValidationError.BAD_RECORD, 'Bad record detected in {records}', records=records)
So to present the info to a human:
In [18]: print e Bad record detected in {'a': 12, 'b': 123}and other code can use:
In [19]: e.error Out[19]: 1and access the relevant varaibles like:
In [20]: e.kwargs Out[20]: {'records': {'a': 12, 'b': 123}}
No comments:
Post a Comment