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: str) str

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

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

Reformat the number to the standard presentation format.

stdnum.imei.imei_type(number: str) str | None

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

stdnum.imei.is_valid(number: str) bool

Check if the number provided is a valid IMEI (or IMEISV) number.

stdnum.imei.split(number: str) tuple[str, str, str]

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: str) str

Check if the number provided is a valid IMEI (or IMEISV) number.