cpr-generator - An Unofficial library and tool for generating and verifying Danish CPR-numbers.
This project contains a library and some CLI-tools for generating, manipulating and verifying Danish CPR-numbers, called "personnummer" or "CPR-nummer" in Danish, as defined by the Danish authority "Det Centrale Personregister".
Disclaimer
This is a community project that is NOT indorsed by the Danish authorities and should not be used as a reference.
Getting Started
This is available on PyPI via. pip which includes both the library and the CLI-tools.
Simply install with the command:
pip install -U cpr-generator
Using the Library
The library contains a few different modules. Most important are the cpr_verifier and the
generator modules.
The cpr_verifier contains three functions:
is_leap_year: takes a year (int) checks whether the year is a leap year.is_cpr_number: takes a potential CPR-number (str) and checks that it fulfills the format:DDMMYY(-)NNNN.satisfies_mod11takes a potential CPR-number (str), checks that it fulfills both the format:DDMMYY(-)NNNNand the Modulus-11 control condition.
Using the CLI-tools
cpr-gen
This is a simple CLI tool that can generate random CPR-numbers, with or without hyphens.
Example usage:
cpr-gen -n 1000 -m False --hyphen True
The above generates a thousand CPR-numbers with hyphens, not satisfying the Modulus-11 control condition.
cpr-server
This CLI-tools starts a HTTP server (using flask) on port 5000 that can generate random
CPR-numbers on demand.
Simply run:
cpr-server
And the server should be available at localhost:5000.
The server has the following available URL endpoints:
/: Returns a random CPR-number (no hyphen)/no-mod11/: Returns a random CPR-number (no hyphen), not satisfying Modulus-11./hyphen/: Returns a random CPR-number (with hyphen)/no-mod11/hyphen/: Returns a random CPR-number (with hyphen), not satisfying Modulus-11./<int:number>/: Returnsnumberrandom CPR-numbers (no hyphen)/no-mod11/<int:number>/: Returnsnumberrandom CPR-numbers (no hyphens), not satisfying Modulus-11./hyphen/<int:number>/: Returnsnumberrandom CPR-numbers (with hyphens)/no-mod11/hyphen/<int:number>/: Returnsnumberrandom CPR-numbers (with hyphens), not satisfying Modulus-11.
cpr-verify
This CLI-tool can be used to check the input fulfills the format of a CPR-number, with or without hyphen, and whether or not the input satisfies the Modulus-11 control condition.
Example usage:
cpr-verify 111111-1118 # --> True
The above verifies that the input 111111-1118 fulfills the CPR-number format.
Metadata
Release files for cpr-generator 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cpr_generator-0.2.2.tar.gz | 8.0 kB | Without provenance | Details for cpr_generator-0.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cpr_generator-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for cpr_generator-0.2.2-py3-none-any.whl |
Total release size: 16.6 kB
Release files / cpr_generator-0.2.2.tar.gz
| Download URL | cpr_generator-0.2.2.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7a1f5d2a10c97eac43aeed89b445f49a325e6b60e092e13b72bb5054c78ae77c
|
|
BLAKE2b-256 checksum How to use checksums |
42d9867bd1c11848f57876bb8d16e94d8a9e8f16bd406818561a49a54cd5ba07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Release files / cpr_generator-0.2.2-py3-none-any.whl
| Download URL | cpr_generator-0.2.2-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a0cb6e606bf712f782513651fcee8f763ab28f9df1471b12b4c050689a777b7d
|
|
BLAKE2b-256 checksum How to use checksums |
4365793a56351f31c084f59826908ecb29d50c3b3fd146fe208a9fb9e9de70b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Security for cpr-generator 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.