kz-iin-validator
kz-iin-validator - Библиотека для проверки и извлечения данных из ИИН на Python 3. ИИН - это Индивидуальный Идентификационный Номер граждан Республики Казахстан (РК) и юридических лиц РК
Возможности:
- Production-ready библиотека
- 100% code coverage - Библиотека полностью покрыта тестами
- Zero-depency - Не требует дополнительных зависимостей
- Базовая валидация данных ИИН, таких как дата, месяц, год
- Генератор ИИН
- Проверка целостности по хэш сумме ИИН. Алгоритм формирования ИИН регулируется Постановлением правительства РК "Об утверждении Программы перехода на единый номер физического (юридического) лица (индивидуальный идентификационный номер (бизнес-идентификационный номер) в целях создания Национальных реестров идентификационных номеров Республики Казахстан" от 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
Извлечь ИИН из текста:
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)
Metadata
Release files for kz-iin-validator 0.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kz_iin_validator-0.7.1.tar.gz | 6.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kz_iin_validator-0.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.6 kB
Release files / kz_iin_validator-0.7.1.tar.gz
| Download URL | kz_iin_validator-0.7.1.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1234d7d7d7a65e4b91134b2ce798db82191741f5f89c895148be47728898fc5e
|
|
BLAKE2b-256 checksum How to use checksums |
bfd341faa62bd1782476e9d1fbfd40fb554357f52efb541b4d9bde42d6782e48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.6
|
Release files / kz_iin_validator-0.7.1-py3-none-any.whl
| Download URL | kz_iin_validator-0.7.1-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
09df53fbb609f5c2e8799e86c0e7360a201a0fec36cb5ae578c0e37e5f4312e8
|
|
BLAKE2b-256 checksum How to use checksums |
a780d77f24e72645b73803baa209d8ca82e5a169b23006f25da0704474ae243d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.6
|