Skip to main content

Validate and decode national ID numbers — extract structured data from government-issued personal IDs

Project description

nidx

PyPI CI License: MIT

Validate and extract information from national ID numbers across multiple countries.

Also available for Rust and JavaScript.

Installation

pip install nidx

Requires Python 3.9+.

Supported countries

Country Module Extracted fields
Albania albania Date of birth, sex, national status
Kosovo kosovo Validation only

Usage

Albania

from nidx import albania

info = albania.decode("J00101999W")
print(info.birthday)    # 1990-01-01
print(info.sex)         # M
print(info.is_national) # True
print(info.year)        # 1990
print(info.month)       # 1
print(info.day)         # 1

assert albania.is_valid("J00101999W")
assert not albania.is_valid("invalid")

decode raises NidFormatError, NidChecksumError, or NidInvalidDateError on invalid input (all subclasses of NidError, which is a ValueError).

Kosovo

from nidx import kosovo

kosovo.validate("1234567892")  # raises on invalid input

assert kosovo.is_valid("1234567892")
assert not kosovo.is_valid("invalid")

API

Albania

albania.decode(nid: str) -> NidInfo — validates and decodes a 10-character Albanian NID. Input is case-insensitive.

Field Type Description
birthday str Date of birth (ISO 8601)
year int Birth year
month int Birth month
day int Birth day
sex str "M" or "F"
is_national bool Whether the person is an Albanian national

albania.is_valid(nid: str) -> bool — returns True if the NID is valid.

Kosovo

kosovo.validate(nid: str) -> None — validates a 10-digit Kosovo personal number. Raises on invalid input.

kosovo.is_valid(nid: str) -> bool — returns True if the personal number is valid.

Exceptions

Exception Parent Raised when
NidError ValueError Base exception for all NID errors
NidFormatError NidError Input has wrong length or characters
NidChecksumError NidError Checksum digit doesn't match
NidInvalidDateError NidError Encoded date is not a valid calendar date

License

MIT

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nidx-0.2.2-cp312-cp312-win_amd64.whl (131.6 kB view details)

Uploaded CPython 3.12Windows x86-64

nidx-0.2.2-cp312-cp312-manylinux_2_34_x86_64.whl (274.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

nidx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl (242.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file nidx-0.2.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: nidx-0.2.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 131.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nidx-0.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 34aedcdc9c2ee9169402efac8d1650781efad946b59e8db471649777cfbf61d0
MD5 26c8cc8261f4d789f40205f3f08f2bc2
BLAKE2b-256 9da9de1586f5b64aea04125f684d5ab89967c00b1cb94f2f35eb5cda2f7ac2aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for nidx-0.2.2-cp312-cp312-win_amd64.whl:

Publisher: release.yml on dedal-io/nidx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nidx-0.2.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for nidx-0.2.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9a12203420b955586c5ce99e54ce09dcae74b71e8b6d167a52eb6dff90fbd902
MD5 c73163dc53a41697fe7448c0d4e7719a
BLAKE2b-256 958f0f0c106e80b8590c80adb8e735f8271b5249fa3071436a93678c0f8193bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for nidx-0.2.2-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: release.yml on dedal-io/nidx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nidx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nidx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0472ac42d7f809b9666f52a9aa18a8854b624ba76eba889cd6a6465fce1bac0d
MD5 9e85bc0f14e5365c6511172ebae6e0ae
BLAKE2b-256 700dbc02c309dd3f4c5dea0be70818936f79adb450358c53d999039ae064cf86

See more details on using hashes here.

Provenance

The following attestation bundles were made for nidx-0.2.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on dedal-io/nidx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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