kz-iin-validator - Библиотека для проверки и извлечения данных из ИИН на Python 3. ИИН - это Индивидуальный Идентификационный Номер граждан Республики Казахстан (РК) и юридических лиц РК
- Production-ready библиотека
- 100% code coverage - Библиотека полностью покрыта тестами
- Zero-depency - Не требует дополнительных зависимостей
- Базовая валидация данных ИИН, таких как дата, месяц, год
- Генератор ИИН
- Проверка целостности по хэш сумме ИИН. Алгоритм формирования ИИН регулируется Постановлением правительства РК "Об утверждении Программы перехода на единый номер физического (юридического) лица (индивидуальный идентификационный номер (бизнес-идентификационный номер) в целях создания Национальных реестров идентификационных номеров Республики Казахстан" от 11 июня 2003 года N 565 - Ссылка на источник приказа
- Python 3.7 и выше * **
* судя по информации утилиты Vermin
** я могу адаптировать (забэкпортить) библиотеку для более старых версии Python, но стоит ли оно? Если что дайте мне знать
- Реализовать поддержку валидации БИН
- Улучшить документация
- Static type hint using Mypy
python3 -m pip install kz-iin-validator
python3 -m pip install git+https://github.com/ZhymabekRoman/kz-iin-validator
from kz_iin_validator import safe_validate_iin, validate_iin
iin = "061211600012"
# use kz_iin_validator as in Golang (preferred in production)
validated_iin, error = safe_validate_iin(iin)
# or directly with exceptions raising:
# validated_iin = validate_iin(iin)
print(f"ИИН: {iin}")
# Print IIN owner gender:
print(f"Пол: {validated_iin.gender.name.upper()}")
# Print IIN owner born information:
print(f"День: {validated_iin.born_date.day}")
print(f"Месяц: {validated_iin.born_date.month}")
print(f"Год: {validated_iin.born_date.year}")
# or directly access to datetime object:
# validated_iin.born_date.datetime
from kz_iin_validator import generate_iin
generated_iin = generate_iin()
print(generated_iin) # return generated valid IIN as string
from kz_iin_validator import extract_iin
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit - 251112401047. Aliquam vel diam ac enim consequat rhoncus 700911204362!."
extracted_iin_list = extract_iin(text)
print(extracted_iin_list)