Collection of exceptions.
The validation functions of stdnum should raise one of the below exceptions when validation of the number fails.
The exceptions are organised hierarchically in the following structure:
ValidationError
+-- InvalidFormat
| +-- InvalidLength
+-- InvalidChecksum
+-- InvalidComponent
It is possible to change the exception messages by setting the message class property. This allows localisation and application-specific error messages.
>>> raise InvalidFormat()
Traceback (most recent call last):
...
InvalidChecksum: The number has an invalid format.
>>> InvalidFormat.message = 'UNKNOWN'
>>> raise InvalidFormat()
Traceback (most recent call last):
...
InvalidChecksum: UNKNOWN
Traceback (most recent call last):
...
InvalidChecksum: UNKNOWN
Bases: exceptions.Exception
Top-level error for validating numbers.
This exception should normally not be raised, only subclasses of this exception.
Bases: stdnum.exceptions.ValidationError
Something is wrong with the format of the number.
This generally means characters or delimiters that are not allowed are part of the number or required parts are missing.
Bases: stdnum.exceptions.ValidationError
The number’s internal checksum or check digit does not match.
Bases: stdnum.exceptions.InvalidFormat
The length of the number is wrong.
Bases: stdnum.exceptions.ValidationError
One of the parts of the number has an invalid reference.
Some part of the number refers to some external entity like a country code, a date or a predefined collection of values. The number contains some invalid reference.