stdnum.luhn¶
The Luhn and Luhn mod N algorithms.
The Luhn algorithm is used to detect most accidental errors in various identification numbers.
>>> validate('7894')
Traceback (most recent call last):
...
InvalidChecksum: ...
>>> checksum('7894')
6
>>> calc_check_digit('7894')
'9'
>>> validate('78949')
'78949'
An alternative alphabet can be provided to use the Luhn mod N algorithm. The default alphabet is ‘0123456789’.
>>> validate('1234', alphabet='0123456789abcdef')
Traceback (most recent call last):
...
InvalidChecksum: ...
>>> checksum('1234', alphabet='0123456789abcdef')
14
-
stdnum.luhn.
calc_check_digit
(number, alphabet='0123456789')¶ Calculate the extra digit that should be appended to the number to make it a valid number.
-
stdnum.luhn.
checksum
(number, alphabet='0123456789')¶ Calculate the Luhn checksum over the provided number. The checksum is returned as an int. Valid numbers should have a checksum of 0.
-
stdnum.luhn.
is_valid
(number, alphabet='0123456789')¶ Check if the number passes the Luhn checksum.
-
stdnum.luhn.
validate
(number, alphabet='0123456789')¶ Check if the number provided passes the Luhn checksum.