Skip to main content

gosnomer

Нормализация для госномеров автомобилей и других транспортных средств РФ. Автоматическое исправление ошибок ручного ввода госномера.

  • Удаление пробелов
  • Перевод в верхний регистр
  • Перевод латиницы в кириллицу
  • Проверка допустимости символов
  • Проверка допустимости формата номера
  • Исправление ошибок в заменой нуля на букву "О" и наооборот
  • Проверка правильности трехзначного кода региона
  • Проверка, что числовые последовательности не состоят только из нулей

Использование:

def normalize(no, prefer=None) -> str: """Берет на вход государственный регистрационный номер транспортного средства с ошибками ручного ввода и возвращает исправленный госномер.

Поднимает ValueError, если в номере, подаваемом на вход, содержатся ошибки, которые
невозможно исправить.

Args:
    no (str): строка с номером, которую требуется нормализовать / исправить.
    prefer (list[str]): перечень предпочитаемых форматов в порядке предпочтения.
        Нужно для случаев, когда номера можно истолковать по-разному.
        Например, `["X999XX999", "X999XX999"]` отдаст предпочтение
        трактовке номеров, как автомобильных (тип 1). А входящая строка "о001тр98"
        будет нормализована как "О001ТР98" (формат номера автомобиля),
        а не как "0001ТР98" (формат номера мопеда).

        Если не указано, то берется первый попавшийся из подошедших форматов.

Returns:
    str: исправленная, приведенная к стандарту строка с номером.

Raises:
    ValueError: если строку не удается исправить, т.е. она содержит символы,
        которым невозможно привести в соответствие один из стандартных,
        или вся строка имеет неправильный формат.

Примеры использования:

>>> normalize ('YY1239O')
'УУ12390'

>>> normalize (12340078)
'1234ОО78'

>>> normalize ('о123оо9о9')
'О123ОО909'

>>> normalize ('000100102')
'О001ОО102'

>>> normalize ('   оо12345  ')
'ОО12345'

>>> normalize("о001тр98", ["9999XX99", "XX99XX99", "X999XX99"])
'0001ТР98'

>>> normalize ('')
Traceback (most recent call last):
...
ValueError: Недопустимый формат: ""

>>> normalize ('000000000')
Traceback (most recent call last):
...
ValueError: Номер не может содержать числовые последовательности, состоящие только из нулей

>>> normalize ('000100001')
Traceback (most recent call last):
...
ValueError: Первая цифра трехзначного региона не может быть нулем

>>> normalize ('ГН99900')
Traceback (most recent call last):
...
ValueError: Недопустимый символ: "Г"

>>> normalize ('НН01ВВ67ОО78')
Traceback (most recent call last):
...
ValueError: Недопустимый формат: "XX*9XX99**99"

>>> normalize (12345678)
Traceback (most recent call last):
...
ValueError: Недопустимый формат: "99999999"

>>> normalize("о001тр98", ["99999999"])
Traceback (most recent call last):
...
ValueError: Параметр prefer содержит недопустимые форматы: {'99999999'}

Модуль также содержит наборы ALLOWED_LETTERS, ALLOWED_NUMBERS, ALLOWED_SYMBOLS и ALLOWED_FORMATS:

>>> 'Ю' in ALLOWED_LETTERS
False

>>> 1 in ALLOWED_NUMBERS
False

>>> '1' in ALLOWED_NUMBERS
True

>>> all([x in ALLOWED_SYMBOLS for x in ALLOWED_NUMBERS])
True

>>> 'Х999ХХ99' in ALLOWED_FORMATS
True

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gosnomer-0.0.9.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gosnomer-0.0.9-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file gosnomer-0.0.9.tar.gz.

File metadata

  • Download URL: gosnomer-0.0.9.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for gosnomer-0.0.9.tar.gz
Algorithm Hash digest
SHA256 db8f3f78e224db0d3506b4156300145d0182e376b8ac9969d95f4e62483c079a
MD5 14cfad5f9665ab6a09f0c64008ba2dcb
BLAKE2b-256 17a00d0bccab6393a901b84469415abadabc8c4d5d953b5b941df4aba4bdb8b6

See more details on using hashes here.

File details

Details for the file gosnomer-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: gosnomer-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for gosnomer-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 9ea2865538d82f54a9e0eaf496d6a9d3bcd3f75dba6ffb5e2ac65cc766d87231
MD5 b7f8ee8ab01a4cbb8ff7934752fbc909
BLAKE2b-256 01f20dc6666377f0ad68891f9521cd82d8da76e503e7baca78e03726012aa13b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page