kz-iin-validator

Kazakhstan IIN parser and validator


Keywords
iin, kazakhstan, kz, pydantic, python3, validation, validator
License
MIT
Install
pip install kz-iin-validator==0.7.1

Documentation

kz-iin-validator

MIT License PyPI version PyPI downloads codecov tests

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

Π‘Ρ…Π΅ΠΌΠ° формирования ИИН:

Π‘Ρ…Π΅ΠΌΠ° Schema IIN

Установка:

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)