27 lines
960 B
Python
27 lines
960 B
Python
"""
|
|
Генератор фиктивного ОГРН (13 знаков).
|
|
|
|
Формат: «ОГРН » + 13 цифр с корректной контрольной суммой.
|
|
"""
|
|
|
|
import re
|
|
from ..random_utils import random_digits
|
|
from ..checksum import checksum_ogrn
|
|
|
|
|
|
def generate_ogrn(original: str) -> str:
|
|
"""Сгенерировать фиктивный 13-значный ОГРН.
|
|
|
|
Сохраняет оригинальный префикс (например, «ОГРН »).
|
|
Первая цифра всегда 1 (признак юридического лица).
|
|
|
|
Args:
|
|
original: Оригинальная строка с ОГРН
|
|
|
|
Returns:
|
|
Строка вида «ОГРН 1XXXXXXXXXXX-C» с корректной контрольной суммой
|
|
"""
|
|
prefix = re.match(r'ОГРН\s*', original, re.IGNORECASE).group(0)
|
|
base = "1" + random_digits(11)
|
|
return prefix + base + checksum_ogrn(base)
|