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)