Kazakhstan IIN parser and validator
Project description
kz-iin-validator
kz-iin-validator - Библиотека для проверки и извлечения данных из ИИН на Python 3. ИИН - это Индивидуальный Идентификационный Номер граждан Республики Казахстан (РК) и юридических лиц РК
Возможности:
- Production-ready библиотека
- 100% code coverage - Библиотека полностью покрыта тестами
- Zero-depency - Не требует дополнительных зависимостей
- Базовая валидация данных ИИН, таких как дата, месяц, год
- Генератор ИИН
- Два варианта валидации: стандартное (по умолчанию) и дополнительно с использованием регулярных выражении (включается через аргумент
weak_fast_check=True
, не рекомендуется к использованию) - Проверка целостности по хэш сумме ИИН. Алгоритм формирования ИИН регулируется Постановлением правительства РК "Об утверждении Программы перехода на единый номер физического (юридического) лица (индивидуальный идентификационный номер (бизнес-идентификационный номер) в целях создания Национальных реестров идентификационных номеров Республики Казахстан" от 11 июня 2003 года N 565 - Ссылка на источник приказа
Требования:
- Python 3.7 и выше * **
* судя по информации утилиты Vermin
** я могу адаптировать (забэкпортить) библиотеку для более старых версии Python, но стоит ли оно? Если что дайте мне знать
TODO:
- Реализовать поддержку валидации БИН
- Улучшить документация
- Static type hint using Mypy
Схема формирования ИИН:
Схема
Установка:
PyPI:
python3 -m pip install kz-iin-validator
Из GIT репозиторий:
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file kz_iin_validator-0.6.0.tar.gz
.
File metadata
- Download URL: kz_iin_validator-0.6.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fbb9c7f6fc0a2db723081d1ab64a9c243918ff26a5464d8112a46fc4b91bd40 |
|
MD5 | 021463dffb15adf143a53f02b11dcb1a |
|
BLAKE2b-256 | 8f756a409073ab653b029b47a6245259b5868265ca2b9b4f415529209815e507 |
File details
Details for the file kz_iin_validator-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: kz_iin_validator-0.6.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abedaca96a08aba7d371b6323203bc0e9957652aa4dffb4240977ea93823c202 |
|
MD5 | 32a1dc969fc6ee37ea1971eeefe586a4 |
|
BLAKE2b-256 | c7dc839540240264a4846e408ccc36cedc5c115a536ab207c1b6a1b0c6b8ce0d |