South African (RSA/ZA) ID number validation and easy data extraction Library.
Project description
za_identity_number
ZA / RSA Identity Number Library to validate/check/manipulate and retrieve ID number info for South African IDs
Current version: 0.0.5
Poetry & pip compatibility
Python 3.5 or greater for f-strings
Installation:
pip:
pip install za-id-number
poetry:
poetry add za-id-number
ZA ID Numbers / RSA ID numbers / South African ID numbers:
ZA id numbers are validated by the luhn algorithm, with the last number validating that the entire number is correct.
ZA ID number is broken up into 2 digits birth year, 2 digits birth month, 2 digits birth date, 4 digits for gender, 1 digit for citizenship (za/other), 1 digit race (phased out after 1980) 1 digit for validation.
For more info: https://www.westerncape.gov.za/sites/www.westerncape.gov.za/files/sa-id-number-new.png
Easiest ZA ID validation is the length. The length must be exactly 13 integers.
Example:
from za_id_number.za_identity_number import SouthAfricanIdentityValidate
if __name__ == "__main__":
za_validation = SouthAfricanIdentityValidate("9202204720082")
valid = za_validation.validate()
za_identity = za_validation.identity()
print(f"Valid: {valid}, Identity: {za_identity}")
Classes:
# Validation class, inherits from SouthAfricanIdentityNumber
validate_id = SouthAfricanIdentityValidate("9001245289086")
# SouthAfricanIdentityNumber class
identity_obj = SouthAfricanIdentityNumber("9001245289086")
Class Attributes:
# SouthAfricanIdentityValidate
SouthAfricanIdentityValidate("9202204720082").valid
# SouthAfricanIdentityNumber
SouthAfricanIdentityNumber("9202204720082").id_number
SouthAfricanIdentityNumber("9202204720082").birthdate
SouthAfricanIdentityNumber("9202204720082").year
SouthAfricanIdentityNumber("9202204720082").month
SouthAfricanIdentityNumber("9202204720082").day
SouthAfricanIdentityNumber("9202204720082").gender
SouthAfricanIdentityNumber("9202204720082").citizenship
SouthAfricanIdentityNumber("9202204720082").age
Methods:
# SouthAfricanIdentityValidate class
SouthAfricanIdentityValidate("9202204720082").valid_birth_date()
SouthAfricanIdentityValidate("9202204720082").validate()
SouthAfricanIdentityValidate("9202204720082").identity()
SouthAfricanIdentityValidate("9202204720082").identity_length()
# SouthAfricanIdentityNumber class
SouthAfricanIdentityNumber("9202204720082").get_age()
SouthAfricanIdentityNumber("9202204720082").get_citizenship()
SouthAfricanIdentityNumber("9202204720082").get_gender()
SouthAfricanIdentityNumber("9202204720082").calculate_birthday()
SouthAfricanIdentityNumber("9202204720082").get_month()
SouthAfricanIdentityNumber("9202204720082").get_year()
SouthAfricanIdentityNumber("9202204720082").get_day()
Questions/Ideas/Feedback
christogoosen@gmail.com christo@anomaloustech.co.za
Future features:
- Generating random ID numbers
Project details
Release history Release notifications | RSS feed
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 za-id-number-0.0.5.post1.tar.gz
.
File metadata
- Download URL: za-id-number-0.0.5.post1.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60633783ceb42623fae25c3ab1b0b37fa0ded948ea24ae5718c5aa103efa9959 |
|
MD5 | 12e4f2c0633030bc5901c3cf00835a7d |
|
BLAKE2b-256 | 09ec7dfbde9a06618e389c88611a345b5fcb21d03da334482bf5405c5ac51c75 |
File details
Details for the file za_id_number-0.0.5.post1-py3-none-any.whl
.
File metadata
- Download URL: za_id_number-0.0.5.post1-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09b7dbdfce4ffb203887af66733e9a5aa3644b3e392c418ee1d2bb03c55a5b84 |
|
MD5 | 884008bd02071f988114fab6ca5c3bea |
|
BLAKE2b-256 | 6e3502ebf935e0948b2cdccc848a3c7ed0bb6ab405f1b7df740609dfb20c7634 |