Skip to main content

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.6

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

za-id-number-0.0.6.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

za_id_number-0.0.6-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file za-id-number-0.0.6.tar.gz.

File metadata

  • Download URL: za-id-number-0.0.6.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for za-id-number-0.0.6.tar.gz
Algorithm Hash digest
SHA256 c21da2f9831e9cd32bfdea2a55d3d3d1b2f96098816ad6a6928ba584c0560768
MD5 806f967f053bf2532fad455b87505a11
BLAKE2b-256 5a57e3fa711601eb4f3f4f8acc80384d3084ffc07ace5963d065840ff8d7c5af

See more details on using hashes here.

File details

Details for the file za_id_number-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: za_id_number-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for za_id_number-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 13165bb03240c02fde62b2b04ec1bc19b6711879e82e34bce31a28bb5a2d5ce6
MD5 8ccedde27065e255a91e4a7d8c3f2093
BLAKE2b-256 098ef91d10d0333218ffbfd1801546e3343b02a1e4909e014ed43ffebd1b4e79

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page