stdnum.imei

IMEI (International Mobile Equipment Identity).

The IMEI is used to identify mobile phones. An IMEI is 14, 15 (when the check digit is included) or 16 digits (IMEISV) long. The check digit is validated using the Luhn algorithm.

More information:

>>> validate('35686800-004141-20')
'3568680000414120'
>>> validate('35-417803-685978-1')
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> compact('35686800-004141-20')
'3568680000414120'
>>> format('354178036859789')
'35-417803-685978-9'
>>> format('35686800-004141', add_check_digit=True)
'35-686800-004141-8'
>>> imei_type('35686800-004141-20')
'IMEISV'
>>> split('35686800-004141')
('35686800', '004141', '')
stdnum.imei.compact(number)

Convert the IMEI number to the minimal representation. This strips the number of any valid separators and removes surrounding whitespace.

stdnum.imei.format(number, separator='-', add_check_digit=False)

Reformat the passed number to the standard format.

stdnum.imei.imei_type(number)

Check the passed number and returns ‘IMEI’, ‘IMEISV’ or None (for invalid) for checking the type of number passed.

stdnum.imei.is_valid(number)

Checks to see if the number provided is a valid IMEI (or IMEISV) number.

stdnum.imei.split(number)

Split the number into a Type Allocation Code (TAC), serial number and either the checksum (for IMEI) or the software version number (for IMEISV).

stdnum.imei.validate(number)

Checks to see if the number provided is a valid IMEI (or IMEISV) number.